使用python解析PDF在cssselect上失败

时间:2015-10-02 07:08:59

标签: python pdf xpath

尝试使用pdfquery,PDFDocument和PDFParser解析PDF文件。 还尝试了pdfquery示例代码。 Alwyas从cssselect / parser.py

获取错误
  

SelectorSyntaxError:预期的字符串或标识

尝试升级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]))
])

1 个答案:

答案 0 :(得分: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]))
])