Como posso ler um arquivo PDF a partir de inline raw_bytes (não do arquivo)?
Estou tentando criar um extrator de pdf no site da Bolsa de Valores da Austrália, que me permitirá pesquisar todos os "Anúncios" feitos pelas empresas e procurar palavras-chave nos pdfs desses anúncios.
Até agora, estou usando solicitações e PyPDF2 para obter o arquivo PDF, gravá-lo no meu disco e depois lê-lo. No entanto, eu quero poder pular a etapa de gravar o arquivo PDF na minha unidade e lê-lo, passando diretamente da obtenção do arquivo PDF para a conversão em uma string. O que tenho até agora é:
import requests, PyPDF2
url = 'http://www.asx.com.au/asxpdf/20171108/pdf/43p1l61zf2yct8.pdf'
response = requests.get(url)
my_raw_data = response.content
with open("my_pdf.pdf", 'wb') as my_data:
my_data.write(my_raw_data)
open_pdf_file = open("my_pdf.pdf", 'rb')
read_pdf = PyPDF2.PdfFileReader(open_pdf_file)
num_pages = read_pdf.getNumPages()
ann_text = []
for page_num in range(num_pages):
if read_pdf.isEncrypted:
read_pdf.decrypt("")
print(read_pdf.getPage(page_num).extractText())
page_text = read_pdf.getPage(page_num).extractText().split()
ann_text.append(page_text)
else:
print(read_pdf.getPage(page_num).extractText())
print(ann_text)
Isso imprime uma lista de seqüências de caracteres no arquivo PDF a partir do URL fornecido.
Gostaria de saber se posso converter a variável my_raw_data em uma string legível?
Muito obrigado antecipadamente!