我希望从以下网页中提取单个值作为文本。
Cascade River Rustic Campground
具体来说,我是在“站点数量”文本之后的“4”值之后(见截图)
我已经能够使用Chrome隔离xpath,如下所示:
//*[@id="act_1"]/div[1]/table/tbody/tr/td[2]
以下代码产生一个空列表:
import urllib2
from lxml import etree
url = "https://www.fs.usda.gov/recarea/superior/recreation/camping-cabins/recarea/?recid=36913&actid=29"
response = urllib2.urlopen(url)
htmlparser = etree.HTMLParser()
tree = etree.parse(response, htmlparser)
x = tree.xpath('//*[@id="act_1"]/div[1]/table/tbody/tr/td[2]')
print x
预期输出应为:
>>> print x
['4']
如何在网页中提取单个元素(即“4”)?
答案 0 :(得分:2)
似乎这个 xpath 对我有用(注意那里没有 tbody )并使用text()
从节点中提取文本:< / p>
x = tree.xpath('//*[@id="act_1"]/div[1]/table/tr/td[2]/text()')
print(x[0].strip())
# 4