说真的,从PDF里面搜索关键字并提取上下文真的是个噩梦,PDF是个面向打印的文档格式,从里面抓数据太痛苦了,搞了一天已经想吐了。不过我还是沉淀了一点点东西。
python解析PDF文档大致有以下几个库:
PDFMiner
pdfplumer
ta
我们主要是提取文本内容,所以推荐使用pdfminer。
安装
默认使用python3.7的环境, 如果是2.7的请酌情处理。
pip install pdfminer
pip install pdfminer3k
pip install pdfminer.six
可能会用到的的相关类:
PDFParser: 从一个文件中获取数据。
PDFDocument: 保存获取的数据,和PDFParser是相互关联的。
PDFPageInterpreter: 处理页面内容。
PDFDevice: 将其翻译成你需要的格式。
PDFResourceManager: 用于存储共享资源,如字体或图像。
准备
这里有一个很重要的关于PDF文档结构的知识,有助于你用代码筛选出你想要的东西:
LTPage :表示整个页。可能会含有LTTextBox,LTFigure,LTImage,LTRect,LTCurve和LTLine子对象。
LTTextBox:表示一组文本块可能包含在一个矩形区域。注意此box是由几何分析中创