Python 3从Web解析PDF

Ber*_*rer 1 python pdf python-requests pypdf2

我试图从网页上获取PDF,进行解析,然后使用PyPDF2将结果打印到屏幕上。我使用以下代码正常工作:

with open("foo.pdf", "wb") as f:
    f.write(requests.get(buildurl(jornal, date, page)).content)
pdfFileObj = open('foo.pdf', "rb")
pdf_reader = PyPDF2.PdfFileReader(pdfFileObj)
page_obj = pdf_reader.getPage(0)
print(page_obj.extractText())
Run Code Online (Sandbox Code Playgroud)

只是写一个文件,尽管听起来很浪费,但我仍然可以读取它,所以我想我会这样切掉中间人:

pdf_reader = PyPDF2.PdfFileReader(requests.get(buildurl(jornal, date, page)).content)
page_obj = pdf_reader.getPage(0)
print(page_obj.extractText())
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个AttributeError: 'bytes' object has no attribute 'seek'。如何将requests直接来自PyPDF2 的PDF 送入?

ƘɌỈ*_*ƬƠƑ 5

您必须使用以下命令将返回的内容转换content为类似文件的对象BytesIO

import io

pdf_content = io.BytesIO(requests.get(buildurl(jornal, date, page)).content)
pdf_reader = PyPDF2.PdfFileReader(pdf_content)
Run Code Online (Sandbox Code Playgroud)