如何从网页中提取单个元素?

时间:2017-03-02 03:26:44

标签: python macos xpath web-scraping lxml

我希望从以下网页中提取单个值作为文本。

Cascade River Rustic Campground

具体来说,我是在“站点数量”文本之后的“4”值之后(见截图)

enter image description here

我已经能够使用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”)?

1 个答案:

答案 0 :(得分:2)

似乎这个 xpath 对我有用(注意那里没有 tbody )并使用text()从节点中提取文本:< / p>

x = tree.xpath('//*[@id="act_1"]/div[1]/table/tr/td[2]/text()')

print(x[0].strip())
# 4