Python Apache Tika单页pars

2024-10-02 10:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有任何方法可以使用Tika/Python只解析第一页,或者只从第一页提取元数据?现在,当我传递pdf时,它正在解析每一页。 我看到这个链接:Is it possible to extract text by page for word/pdf files using Apache Tika? 然而,这个链接用java解释了更多,我不熟悉。我希望有一个python解决方案?谢谢!在

from tika import parser
# running: java -jar tika-server1.18.jar before executing code below. 
parsedPDF = parser.from_file('C:\\path\\to\\dir\\sample.pdf')

fulltext = parsedPDF['content']

metadata_dict = parsedPDF['metadata']
title = metadata_dict['title']
author = metadata_dict['Author'] # capturing all the names from lets say 15 pages. Just want it to capture from first page 
pages = metadata_dict['xmpTPg:NPages']

Tags: tofromparserpdftitle链接pageit
2条回答

谢谢你的信息,真的很有帮助。下面是我逐页检索内容的代码(有点脏,但它可以工作):

    raw_xml = parser.from_file(file, xmlContent=True)
    body = raw_xml['content'].split('<body>')[1].split('</body>')[0]
    body_without_tag = body.replace("<p>", "").replace("</p>", "").replace("<div>", "").replace("</div>","").replace("<p />","")
    text_pages = body_without_tag.split("""<div class="page">""")[1:]
    num_pages = len(text_pages)
    if num_pages==int(raw_xml['metadata']['xmpTPg:NPages']) : #check if it worked correctly
         return text_pages

@Gagravarr关于XHTML的评论,我发现Tika在读取文件时有一个xmlContent解析。我用它来捕获xml格式,并用regex来捕获它。在

我终于明白了:

parsed_data_full = parser.from_file(file_name,xmlContent=True) 
parsed_data_full = parsed_data_full['content']

每个页分隔符都有一个开始和结束,它以"<div"开始,并以第一次出现的"</div>"结束。基本上写了一个小代码来捕捉2个子字符串之间的子字符串,并根据我的具体要求存储到一个变量中。在

相关问题 更多 >

    热门问题