2016-03-28 89 views
1

我在xpath中使用python,並在xpath語法中迷失方向。我想要做的是檢查HTML頁面中的表中是否沒有標籤。所以我使用xpath來做到這一點。然後,如果沒有這個標籤,請執行相對於該部分的xpath搜索。我似乎正在努力工作,但這種做法恰恰相反,並且無法弄清楚原因。示例代碼如下。Xpath - 在xpath結果中搜索

​​

我不認爲xpath對於價格是正確的。希望有人能夠賜教:)

+0

你介意分享問題的HTML,我們不能對你的文檔的確切結構做出假設 – danidee

回答

2

我不認爲你在這裏正確使用XPath。

只是過濾你想要的節點並拋出你自己的循環和標誌。

cars_without_tag_price = '''//td[ 
    @class="cars" and not(span[@class="colorRed"]) 
]/following-sibling::td[@class="price"]/span[@class="amount-value"] 
''' 

for price_node in tree.xpath(cars_without_tag_price): 
    price_str = price_node.text.strip() 
+0

神聖莫里!謝謝 - 我不認爲xpath可以做到這一點。還有一個問題 - 在xpath字符串的開始和結尾處,emtpy字符串意味着什麼? – area9

+0

當您從樹中選取特定節點時,您會驚訝於XPath可以執行的操作。除了基礎知識之外,它確實值得學習。 - 此代碼示例中沒有空字符串。三重引號是Pythons標記多行字符串的方式。 – Tomalak

+0

啊是的。忘了這個。你現在可以告訴我這是一個初學者:) – area9