Python XPath 爬虫显示列表没有文本属性
我正在用一段代码从PDF中提取信息,生成一个相关的字典。我的代码在逐个访问每个文本块时是可以正常工作的,比如
x = scraperwiki.pdftoxml(u.read())
r = lxml.etree.fromstring(x)
s = r.xpath('//page[@number="142"]/text[@left = "134"]')
print s[8].text
打印s[0]、s[1]等都没问题,但当我尝试对
x = scraperwiki.pdftoxml(u.read())
r = lxml.etree.fromstring(x)
s = r.xpath('//page[@number="142"]/text[@left = "134"]')
print s[0:8].text
做同样的操作时,就出现了这个错误:AttributeError: 'list' object has no attribute 'text'
有没有人能告诉我哪里出错了?
1 个回答
1
text
是每个元素的一个属性,而不是整个列表的属性。
要逐个处理每个元素。
x = scraperwiki.pdftoxml(u.read())
r = lxml.etree.fromstring(x)
s = r.xpath('//page[@number="142"]/text[@left = "134"]')
for elem in s[:8]:
print elem.text
或者可以使用列表推导式:
x = scraperwiki.pdftoxml(u.read())
r = lxml.etree.fromstring(x)
s = r.xpath('//page[@number="142"]/text[@left = "134"]')
print [elem.text for elem in s[:8]]