所以我刚刚玩过PDFMiner,现在可以从PDF中提取文本并将其放入html或文本文件中。
pdf2txt.py -o outputfile.txt -t txt inputfile.pdf
然后我编写了一个简单的脚本来提取所有特定的字符串:
with open('output.txt', 'r') as searchfile:
for line in searchfile:
if 'HELLO' in line:
print(line)
现在我可以使用包含单词HELLO的所有字符串添加到我的数据库中,如果这是我想要的。
我的问题是:
这是唯一的方法还是PDFinder可以在将其吐出到txt,html甚至是直接进入数据库之前抓取有条件的东西?
答案 0 :(得分:1)
嗯,是的,你可以:PDFMiner有API。
基本示例sais
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
# Open a PDF file.
fp = open('mypdf.pdf', 'rb')
# Create a PDF parser object associated with the file object.
parser = PDFParser(fp)
# Create a PDF document object that stores the document structure.
# Supply the password for initialization.
document = PDFDocument(parser, password)
# Check if the document allows text extraction. If not, abort.
if not document.is_extractable:
raise PDFTextExtractionNotAllowed
# Create a PDF resource manager object that stores shared resources.
rsrcmgr = PDFResourceManager()
# Create a PDF device object.
device = PDFDevice(rsrcmgr)
# Create a PDF interpreter object.
interpreter = PDFPageInterpreter(rsrcmgr, device)
# Process each page contained in the document.
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
# do stuff with the page here
并且在循环中你应该使用
# receive the LTPage object for the page.
layout = device.get_result()
然后使用LTTextBox
对象。你必须分析一下。文档中没有完整的示例,但您可以查看the pdf2txt.py source,它可以帮助您找到缺失的部分(尽管它会解析选项并应用它们,但它会做得更多)。
一旦你有了提取文本的代码,你就可以在保存文件之前做你想做的事。包括搜索文本的某些部分。
在某种程度上,PS看起来像以前一样被问到:How do I use pdfminer as a library这也应该有所帮助。