2017-05-14 75 views
0

我需要能夠將跨度內的文本作爲python中的輸入參數。我一直在與Xpath掙扎數小時。Xpath - 跨度內的目標文本

<ul class="program"> 
    <li class="list"... 
    <a class="listing_link" href=""> 
     <span class="title text-ellipses">TEXT TO SELECT</span> 

這是我想到的最簡單的。

//ul/li/a/span//text() 

但它不起作用。 我也試過類似的東西:

string(//ul/li/a/span[contains(text(), 'TEXT TO SELECT')]) 

但是沒有任何一個。

請注意,片段是一個更大的樹的一部分。這個想法是針對所有發生的文字:

//ul/li/a/span. 

任何幫助嗎?

+0

你能分享頁面URL嗎? – Andersson

+0

https://www.ziggogo.tv/nl/tv-gids.html – Nirow

+0

您的xpath適用於您發佈的片段。你能更具體地說「不起作用」嗎?你可以發佈一個最小有效的XML文檔模擬出你想找的東西嗎?你把我們引用到一些看起來與你的xml乍一看沒關係的巨大的html頁面。你能縮小這個範圍嗎? – tdelaney

回答

1

你應該做的是使用類名選擇正確的元素,然後在該元素內部進行測試。試試這個:

page.select('//*[@class="title text-ellipses"]/text()').extract() 

在這裏,「page」是在「lxml」模塊中使用「html」方法解析的html頁面。例如,請參閱我的腳本Github

+0

非常感謝!有效。 – Nirow