XPath 是一門在 XML 文檔中查找信息的語言。XPath 用于在 XML 文檔中通過元素和屬性進行導航。

在爬山虎采集器中,我們用 XPath 來查找定位網頁中的 Html 元素。 可以說 XPath 在采集器中是一個非?;A、非常重要的技術,在一些復雜的網頁,可能需要手動 編寫 XPath 表達式來解決問題。

具體的 XPath 知識,大家可用通過 http://www.w3school.com.cn/xpath/index.asp 來學習。


在爬山虎采集器中,列表模式、手動設置分頁、字段中都是通過 XPath 來定位數據的。 都可以通過手動設置 XPath 來修改、完善 XPath 表達式

xpath

XPath 可以填寫多條,以作為補充、備用。

建議:如果手動編寫 XPath ,盡量使用 class 來定位,比如 //div[@class='xxx']。相對于使用 /div[1] 索引這種方式更加穩定。

絕對路徑、相對路徑 XPath

列表模式下,字段是在列表中的一個節點中進行匹配,XPath 是以./開頭,表示當前節點的意思。而單條模式時,字段是在整個頁面中進行匹配的。

列表模式下,字段的 XPath 需要是列表項的相對 XPath ,比如 ./div[1]/div[1]/span[1]

單條模式下,字段的 XPath 是絕對 XPath,比如//div[@class='xxx']


根據文本生成 XPath

在采集一些網站,多個頁面之間的數據有差異,會導致我們采集的數據發生錯位。 在瀏覽器右鍵菜單里,我們提供了2種生成相對 XPath 的方法

xpath

  1. 通過前綴文本生成
    根據當前節點之前的文本來生成一個 XPath,類似://span[contains(text(),'評分:')]/following-sibling::span[1],
  2. 通過當前文本生成
    根據當前節點的文本來生成一個 XPath,類似://span[contains(text(),'來自?164?份評價')],然后我們將其中的來自?164去掉,得出//span[contains(text(),'份評價')],我們就可以獲取到評價數量了。