【问题标题】:How to search keywords in 400+ PDF files? [duplicate]如何在 400 多个 PDF 文件中搜索关键字? [复制]
【发布时间】:2014-09-25 04:14:36
【问题描述】:

我有大约 400 个或更多 PDF 文件,它们共同构成一个文本。它就像一本书一页一页地分开。我需要以编程方式在整个文本中搜索一些关键字。

所以我的第一个问题是:最好是逐页搜索还是先将所有 PDF 合并到一个大文件中然后再执行搜索?

第二个是:最好的制作方法是什么?那里已经有什么好的程序或库了吗?

顺便说一句,我只使用 PHP 和 Python。

【问题讨论】:

    标签: php python pdf search keyword


    【解决方案1】:

    使用PyPdf,如here 所述。

    import pyPdf
    
    def getPDFContent(path):
        content = ""
        # Load PDF into pyPDF
        pdf = pyPdf.PdfFileReader(file(path, "rb"))
        # Iterate pages
        for i in range(0, pdf.getNumPages()):
            # Extract text from page and add to content
            content += pdf.getPage(i).extractText() + "\n"
        # Collapse whitespace
        content = " ".join(content.replace("\xa0", " ").strip().split())
        return content
    
    for f in filelist:
        print keyword in getPDFContent(f)
    

    逐个搜索它们更快更简单,因为您可以简单地遍历所有文件并在每个文件上使用代码。

    【讨论】:

    • 不错! Tahnks 兄弟!但我认为,关键字部分只是说明性的,对吧?关键字搜索比 400 多页的搜索要复杂得多,成本也高得多。我说得对吗?我需要获取包含输入关键字的完整段落。我真的很感激帮助和代码/库..
    • 搜索关键字并不难,正如示例代码所示。您只需将页面的所有文本都放入一个字符串中,然后查看该关键字是否在该字符串中:keyword in getPDFContent(f)。更棘手的部分是给出关于段落的反馈。您可以尝试制作一个段落字符串列表,而不是每页一个大字符串并通过它进行搜索。我不打算为此编写代码,但是这些提示应该可以帮助您前进。而且我一点也不担心性能。搜索 400 个页面最多只需几分钟
    • 好的,非常感谢。想知道相同的代码是否会在 PyPDF2 上正常运行...只是尝试一下!再次感谢您
    猜你喜欢
    • 2011-10-12
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2020-10-11
    相关资源
    最近更新 更多