2017-08-16 107 views
0

我試圖從Tripadvisor與Python 3 & lxml餐廳名稱。我試圖檢索的文本在以下元素中,並在這種情況下被命名爲「Al Fresco」。Xpath text()不返回文本

<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) 

這將返回我空數組:名稱:[] 如何獲得我想要的文字?

+0

您可以發佈一個實際的網址,讓您發現這個元素? – Severin

+0

https://www.tripadvisor.nl/Restaurants-g293925-Ho_Chi_Minh_City.html#EATERY_OVERVIEW_BOX 然後檢查餐廳的名稱 – Jasper

回答

0

沒有看看實際的頁面,你的Xpath可能太嚴格了。試試這樣:

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

如果這樣會產生太多的結果,請嘗試在前面添加父項。

希望有所幫助。

UPDATE:

在實際的頁面有一看後,這個我可能是你正在尋找:

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

這會產生太多的結果,但給了我一些我可以使用的東西,謝謝! – Jasper

+0

@Jasper根據您提供的網址更新了答案。 – Severin

+0

如果它解決了你的問題,請接受答案:) – Severin