¿Cómo puedo leer un archivo PDF desde raw_bytes en línea (no desde el archivo)?
Estoy tratando de crear un extractor de PDF del sitio web de la Bolsa de Valores de Australia que me permitirá buscar a través de todos los 'Anuncios' realizados por las empresas y buscar palabras clave en los archivos PDF de esos anuncios.
Hasta ahora estoy usando solicitudes y PyPDF2 para obtener el archivo PDF, escribirlo en mi disco y luego leerlo. Sin embargo, quiero poder omitir el paso de escribir el archivo PDF en mi unidad y leerlo, y pasar directamente de obtener el archivo PDF a convertirlo en una cadena. Lo que tengo hasta ahora es:
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)
Esto imprime una lista de cadenas en el archivo PDF desde la url proporcionada.
¿Me pregunto si puedo convertir la variable my_raw_data en una cadena legible?
Muchas gracias de antemano!