使用xpath / lxml刮取文本

时间:2017-07-26 20:20:04

标签: python xpath web-scraping beautifulsoup lxml

我正在尝试使用xpath / lxml从http://www.cellartracker.com/wine.asp?iWine=91411的文字“2005-2013”​​中删除文字“2005-2013”​​,并且我只能在这个网站上的其他页面,而不是这个。不确定我做错了/如果我从元素中复制的xpath不正确

它告诉我:

print(content_divs[0].text_content().strip())
IndexError: list index out of range

这是我的代码:

import requests, lxml.html
page = requests.get('http://www.cellartracker.com/wine.asp?iWine=91411')
html = lxml.html.fromstring(page.content)
content_divs = html.xpath('//*[@id="wine_copy_inner"]/p/a[4]')
print(content_divs[0].text_content().strip())

感谢您的帮助!!!

2 个答案:

答案 0 :(得分:0)

xpath数组是否已编入索引?

//*[@id="wine_copy_inner"]/p/a[4]应为...[3]

当您登录并注销时,a标签的数量会发生变化。可能想使用另一种方法来定位此标记。

答案 1 :(得分:0)

如果您想获得"2005 - 2013",可以使用以下代码

content = html.xpath('//a[@title="Source: Community"]/text()')