如何利用Python抓取PDF中的某些内容

如何利用Python抓取PDF中的某些内容,第1张

方法很多,比如之前提到的pypdf。然而用起来其实稍显麻烦,很多 *** 作不够方便。

所以我一般用pdf2htmlex(github上有,一个国人项目,非python)先把pdf转html,接下来再用bs4来解析处理。好处是处理html的工具非常非常丰富,且pdf2htmlex对原页面的效果保持得特别好,特别是对于那些个用word和latex导出的pdf里,大量数据图表里的标签可以很方便地把值抓出来……

calibre自带并硬编码了一些字体文件,这些字体中不包含中文字符,渲染出来的就只能显示成问号了。解决方案是:打开首选项->优化调整->设置在生成默认封面时所使用的字体,分别修改generate_cover_foot_font和 generate_cover_title_font的值来改变封面标题和页脚的字体。比如:generate_cover_title_font=”c:\\windows\\fonts\\simheittf”就可以改用黑体。修改后需要重启calibre才可以生效。如果电脑上没有 simheittf这个字体,也可以换成任意路径下的任意字符文件。

对于0725以前版本的用户:用中文字体替换掉英文字体:在calibre安装目录下找到resources\fonts \liberation目录,用中文字体(比如文泉驿微米黑)替换掉里面的LiberationMono-Regularttf和LiberationSerif-Boldttf即可(删除原来的字体文件,把中文字体文件放进去并改名成这两个名字)。

还有一个解决方案是直接安装Generate Cover插件,用它可以更精细的定制生成的封面样式。可以在首选项->插件->获取新的插件中直接在线安装。

题图来自 Camelot: List o’ 10 Intriguing Mythical Places

为获取LEED认证项目的评分表明细,可以从USGBC的项目页面上爬取,或者从pdf格式的项目评分表中解析得到。以 重庆某LEED EM:OB v2009 Gold项目 为例,USGBC上公布的 LEED项目得分表 其格式并不统一,利用XPath爬取后需要进一步清洗处理。相对而言,LEED项目所对应的 项目评分表PDF文件 的数据更为规范完整。因此考虑尝试解析出PDF文件中的表格,以便后续分析。

Python 处理PDF文件的程序包,pdfminer、tabula、pdfplumber、camelot……查询资料表明,似乎普遍认为pdfminer的效果不怎么好,而tabula需要java支持 ,想偷懒于是只试了pdfplumber和camelot。

安装过程不赘述,直接来看运行结果。

pdfplumber无法直接解析出Scorecardpdf文件中的表格,但实际上要解决此问题也并非难事。调整下思路,可先解析出pdf文件中的文本,让后通过分列来得到表格。

利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由于本次需要解析的得分表pdf文件的排版的原因,左右两个表格的文本行并未完全对齐,因此如果直接解析完整页面上的文本的话,文字会出错。先用corp()命令指定识别范围,然后再extract_text(),识别得到的文本列表如下所示。

对于类似本例中Scorecardpdf表格排版有错位的情况,也可以按照表格在页面中所处的位置,指定表格识别的范围。所用到的指令:camelotplot()可以绘制出页面的略图,table_area参数可以指定表格识别的范围。

又及,Camelot原来是亚瑟王和圆桌骑士们的宫殿所在地,和Asgard的Valhalla一样,也是传说中的圣域。搜索camelot程序安装包时无意中学到的,涨知识了。

[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比

[2] 用Python提取pdf文件中的表格数据

[3] python读取pdf文件

[4] Github: pdfplumber

[5] Camelot: PDF Table Extraction for Humans

[6] ImageMagick Installation

[7] ImageMagick之PDF转换成(image)

[8] LEED 2009 for Existing Buildings: Operations & Maintenance

[9] Camelot - Wikipedia

[10] List o’ 10 Intriguing Mythical Places

[11] Camelot识别pdf表格时的参数设置补充

pdfminer 库

>

以上就是关于如何利用Python抓取PDF中的某些内容全部的内容,包括:如何利用Python抓取PDF中的某些内容、您好,我现在也要解决一个问题,用Python提取PDF里面的内容,试了好多办法都不成、、Python解析PDF表格——PDFPlumber vs Camelot等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9805162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存