Python XPath抓取说list没有text属性

时间:2014-08-30 14:02:43

标签: python xml python-2.7 xpath lxml

我正在使用代码来抓取PDF以生成相关字典。当我单独访问每个文本块时,我的代码就可以工作,即

x = scraperwiki.pdftoxml(u.read())
    r = lxml.etree.fromstring(x)
    s = r.xpath('//page[@number="142"]/text[@left = "134"]')
    print s[8].text 

print 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'对象没有属性'text'

谁能告诉我什么是错的?

1 个答案:

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