python - 使用 python 解析 PDF 在 cssselect 上失败

标签 python pdf xpath

尝试使用 pdfquery、PDFDocument 和 PDFParser 解析 PDF 文件。 还尝试了 pdfquery 示例代码。 总是从 cssselect/parser.py 中收到错误

SelectorSyntaxError: Expected string or ident

尝试升级 cssselect,但没有成功。

有人知道吗? 我正在运行 Python 2.7

我使用的代码和示例文件来自:https://github.com/jcushman/pdfquery

pdf = pdfquery.PDFQuery("tests/samples/IRS_1040A.pdf")
pdf.extract( [
 ('with_parent','LTPage[pageid=1]'),
 ('with_formatter', 'text'),
 ('last_name', 'LTTextLineHorizontal:in_bbox("315,680,395,700")'),
 ('spouse', 'LTTextLineHorizontal:in_bbox("170,650,220,680")'),
 ('with_parent','LTPage[pageid=2]'),
 ('oath', 'LTTextLineHorizontal:contains("perjury")', lambda match: match.text()[:30]+"..."),
 ('year', 'LTTextLineHorizontal:contains("Form 1040A (")', lambda match: int(match.text()[-5:-1]))
])

最佳答案

我查看了示例,似乎您缺少一些引号(在 xpath 表达式 LTPage[pageid="1"]LTPage[pageid="2"] 中) 。使用引号就不会出现错误消息。

pdf.extract( [
 ('with_parent','LTPage[pageid="1"]'),
 ('with_formatter', 'text'),
 ('last_name', 'LTTextLineHorizontal:in_bbox("315,680,395,700")'),
 ('spouse', 'LTTextLineHorizontal:in_bbox("170,650,220,680")'),
 ('with_parent','LTPage[pageid="2"]'),
 ('oath', 'LTTextLineHorizontal:contains("perjury")', lambda match: match.text()[:30]+"..."),
 ('year', 'LTTextLineHorizontal:contains("Form 1040A (")', lambda match: int(match.text()[-5:-1]))
])

关于python - 使用 python 解析 PDF 在 cssselect 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902132/

相关文章:

c# - 使用免费的第三方 dll 将 word 转换为 pdf

ios - 复制CALayer

html - 使用 xpath 选择 anchor 时 Href 属性为空

javascript - XML用双引号存储文本数据,JavaScript在检索数据时崩溃

python - 目录 : Is a directory

python - BeautifulSoup PYTHON - 内部标签

python - 如何在机器人框架或Python中将日期格式(如 'Wed Mar 13 10:10 EDT 2013')转换为 "2013-03-13 10:10"

javascript - 在 IE8+ 中嵌入生成的 PDF 文件

java - 使用XPath进行XML解析时出现文件未找到异常

Python 字典中的列表