Python - Apache Tika 单页解析器
Python - Apache Tika Single Page parser
我想知道是否有任何方法可以使用 Tika/Python 仅解析第一页或仅从第一页提取元数据?现在,当我传递 pdf 时,它正在解析每一页。
我看了这个 link:Is it possible to extract text by page for word/pdf files using Apache Tika?
不过这个link在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']
@Gagravarr 关于 XHTML 的评论,我发现 Tika 在读取文件时进行了 xmlContent
解析。我用它来捕获 xml 格式并使用正则表达式来捕获它。
这对我有用:
parsed_data_full = parser.from_file(file_name,xmlContent=True)
parsed_data_full = parsed_data_full['content']
每个以 "<div"
开始并以 "</div>"
第一次出现结束的分页符都有一个开始和结束。基本上写了一个小代码来捕获 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
我想知道是否有任何方法可以使用 Tika/Python 仅解析第一页或仅从第一页提取元数据?现在,当我传递 pdf 时,它正在解析每一页。 我看了这个 link:Is it possible to extract text by page for word/pdf files using Apache Tika? 不过这个link在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']
@Gagravarr 关于 XHTML 的评论,我发现 Tika 在读取文件时进行了 xmlContent
解析。我用它来捕获 xml 格式并使用正则表达式来捕获它。
这对我有用:
parsed_data_full = parser.from_file(file_name,xmlContent=True)
parsed_data_full = parsed_data_full['content']
每个以 "<div"
开始并以 "</div>"
第一次出现结束的分页符都有一个开始和结束。基本上写了一个小代码来捕获 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