Skip to main content
 首页 » 编程设计

Python 3 从网络解析 PDF

2025年05月04日13del

我试图从网页获取 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()) 

写一个文件只是为了我可以阅读它虽然听起来很浪费,所以我想我应该用这个来减少中间人:

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

然而,这会产生一个 AttributeError: 'bytes' object has no attribute 'seek'。如何将来自 requests 的 PDF 直接提供给 PyPDF2?

请您参考如下方法:

您必须使用 BytesIO 将返回的 content 转换为类似文件的对象:

import io 
 
pdf_content = io.BytesIO(requests.get(buildurl(jornal, date, page)).content) 
pdf_reader = PyPDF2.PdfFileReader(pdf_content)