python搜索pdf内容所在页码_利用Python在pdf文档中寻找某些词出现的页码

本文讲述了如何使用Python库PyPDF2和pdfminer.six在PDF文档中搜索特定词汇并找出它们所在的页码。PyPDF2无法处理中文,而pdfminer.six则能支持,通过解析PDF内容并保留页码信息,最终实现目标词汇的页码定位。
摘要由CSDN通过智能技术生成

要研究pdf文件的页码,首先要考虑这个文件的种类。pdf可能是一本书的电子版,可能是一份简历、可能是由Word、PPT或其他文档导出的……如果不是一本书,通常页面内容里是没有页码的;如果是一本书,虽然有页码,但是封面、前言、目录、章节的封面很可能不会标上页码,而正文的页码和该pdf文件本身的页码对不上,如页面里的第1页会是pdf的第5页,页面的第2页是pdf的第6页……为了统一,我将页码“定义”为pdf的文件的页码。

下面来试试如何通过Python找到词汇出现过的页码,首先我使用的是PyPDF2这个库,这个库使用起来非常简单,但是只能提取pdf中的文本信息,是可以用来寻找词汇的。我首先利用一篇英文文献试了一下:

1 importPyPDF22

3 pdf_File=open('C:\\Users\\user\\Desktop\\2016.pdf','rb')4 pdf_Obj=PyPDF2.PdfFileReader(pdf_File)5 pages=pdf_Obj.getNumPages()6

7 word_list=['predictedvalues','warfarin','NONMEM','atrialfibrillation','results']8

9 for w inword_list:10 page_list=[]11 for p inrange(0,pages):12 text=pdf_Obj.getPage(p).extractText()13 if w intext:14 page_list.append(p+1)15

16 print(w,page_list)

我要寻找的词汇是:predictive values, warfarin, NONMEM, atrial fibrillation, results,由于PyPDF2处理文本时,所有的空格都会消失,所以“predictive values”和“atrial fibrillation”写成了“predictivevalues”和“atrialfibrillation”。输出的结果如下:

可以发现,已经打印出了这些词汇出的页码。然而当我在一份中文pdf上再次应用时,却失败了。我首先想到是编码的问题,于是在第一行加上:

encoding=utf-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值