首页 > 解决方案 > 无法使我的脚本以所需格式打印输出

问题描述

我正在尝试从 pdf 文件中提取特定部分的文本。我已经使用PyPDF2图书馆来做到这一点。但是,当我执行下面的脚本时,我可以看到我想要抓取的内容正在笨拙地打印在控制台中。

到目前为止,我已经写过:

import io
import PyPDF2
import requests

URL = 'http://www.ct.gov/hix/lib/hix/CT_DSG_-12132014_version_1.2_%28with_clarifications%29.pdf'

res = requests.get(URL)
f = io.BytesIO(res.content)
reader = PyPDF2.PdfFileReader(f)
contents = reader.getPage(0).extractText()
print(contents)

我得到的输出:

ACCESSHEALTHCTConnecticutAllPayersClaimsDatabaseDATASUBMISSIONGUIDE
December5,2013
Version1.2(withclarifications)

我希望获取的输出如下:

ACCESS HEALTH CT
Connecticut All Payers Claims Database
DATA SUBMISSION GUIDE
December 5, 2013
Version 1.2 (with clarifications)

标签: pythonpython-3.xweb-scrapingpypdf2

解决方案


这是 pyPDF2 的问题,原因是 PyPDF 不读取换行符。或者你可以pdftotext

简单而干净,您可以遍历页面或提取一页。

import io
import requests
import pdftotext
URL = 'http://www.ct.gov/hix/lib/hix/CT_DSG_-12132014_version_1.2_%28with_clarifications%29.pdf'
res = requests.get(URL)
f = io.BytesIO(res.content)
pdf = pdftotext.PDF(f)
print(pdf[0])
# Iterate over all the pages
# for page in pdf:
#     print(page)

在此处输入图像描述


推荐阅读