Xpath text()不返回任何文本

时间:2017-08-16 03:43:28

标签: html python-3.x xpath

我正在尝试使用Python 3&amp ;;来自Tripadvisor的餐馆名称。 LXML。我正在尝试检索的文本位于以下元素中,在这种情况下被命名为“Al Fresco”。

<a target="_blank" href="/Restaurant_Review-g293925-d8327527-Reviews-
Al_Fresco_s-Ho_Chi_Minh_City.html" class="property_title" 
onclick="ta.restaurant_list_tracking.clickDetailTitle('/Restaurant_Review-
g293925-d8327527-Reviews-Al_Fresco_s-
Ho_Chi_Minh_City.html','tags_category_tag_restaurants','8327527','1','0');">
Al Fresco's
</a>

对此元素的Xpath引用:

//*[@id="eatery_8327527"]/div[2]/div[1]/div[1]/a

我使用以下简单代码检索此元素中的文本:

from lxml import html
import requests

page = requests.get('https://www.tripadvisor.nl/Restaurants-g293925-
Ho_Chi_Minh_City.html')
tree = html.fromstring(page.content)

#This will create a list of Names:
Name = tree.xpath('//*[@id="eatery_8327527"]/div[2]/div[1]/div[1]/a/text()')
print ('Name: ', Name)

这会返回一个空数组:名称:[] 我如何得到我想要的文字?

1 个答案:

答案 0 :(得分:0)

如果不查看实际页面,您的Xpath可能过于严格。尝试这样的事情:

//a[contains(@href,"Restaurant_Review")]/text()

如果产生的结果太多,请尝试在前面添加父级。

希望有所帮助。

更新:

看了一下实际的页面后,我可能正在寻找你的内容:

//a[contains(@class,"property_title")]/text()