pdf 和 word 文档都是二进制文件,由于包含多媒体信息(图标甚至视频),处理起来比普通文本复杂许多。好在一些先驱者已经写好了一些模块可以让我们来使用,致敬这帮人!哈哈。这章节我们主要专注从pdf中解析文本,或者从已有文档生成新的pdf。
13.1.1 从 pdf 提取文本
此处我们使用PyPDF2模块,注意它并不能帮助我们提取图像等多媒体信息,不过可以提取文本,并将文本返回为strs。 本书提供了一些文件可以供我们下载。 方便点的话,我们直接在terminal上用
In [ ]:
wget https://nostarch.com/download/Automate_the_Boring_Stuff_onlinematerials_v.2.zip
就可以下载到,然后可以找到一个叫做meetingminitus.pdf的文件。这个就是我们接下来要用的
In [6]:
import PyPDF2
with open('./automate_online-materials/meetingminutes.pdf', 'rb') as f:
pdfreader = PyPDF2.PdfFileReader(f)
print(pdfreader.numPages)
page0 = pdfreader.getPage(0)
page0text = page0.extractText()
print(page0text)
In [ ]:
好。现在来试试我自己用latex写的pdf文档。
In [19]:
import PyPDF2
with open('./polarmetal-v28-letter.pdf', 'rb') as f:
pdfreader = PyPDF2.PdfFileReader(f)
print(pdfreader.numPages)
for i in range(0,pdfreader.numPages+1):
if i==0:
page_number = pdfreader.getPage(i)
page_text = page_number.extractText()
print(page_text[:100])
In [ ]:
所以说,我们并不能期待它太高。标题和姓名中的空格基本上都被‘吞’掉了。这样的话,对于大篇幅文本,可以说并没什么用处。
In [ ]: