Python3无需本地下载 从URL读取PDF第一页出现乱码问题咨询
在线读取URL中PDF第一页内容的解决方案
问题原因
你当前代码的URL请求、内存加载PDF的逻辑完全正确,输出乱码是因为PyPDF2库的文本解析能力有限,无法兼容该PDF使用的特殊字体编码,该问题和是否将PDF保存到本地无关。
修复方案
使用兼容性更强的pdfplumber库替换PyPDF2即可解决绝大多数非扫描版PDF的乱码问题:
- 安装依赖
pip install pdfplumber
- 完整可运行代码
import io import urllib3 import pdfplumber # 关闭SSL警告 urllib3.disable_warnings() # 测试用目标PDF链接 url = "http://www.ain.gouv.fr/IMG/pdf/aprejetdae20210709enligne.pdf" with urllib3.PoolManager() as http: resp = http.request('GET', url) # 内存加载PDF字节流,无需保存本地 with io.BytesIO(resp.data) as byte_f, pdfplumber.open(byte_f) as pdf_reader: # 提取第一页文本按换行分割 first_page_content = pdf_reader.pages[0].extract_text().split('\n') print(first_page_content)
特殊情况说明
如果目标PDF是扫描件(内容为图片格式,无内嵌可编辑文本),需要额外接入OCR工具对PDF页面做图像识别后才能提取文本。
内容的提问来源于stack exchange,提问作者Olfa
相关产品推荐
相关产品推荐

