如果結果為 TRUE,則頁面上的元素將被選取。如果謂詞的結果為 FALSE,則將其排除。 考慮這個表達式: //*[@class='任意'] 這將選擇 CSS 類別為“any”的任何元素。 從產品頁面提取價格 讓我們透過 Anglepoise 燈的產品頁面來 馬耳他 電話號碼庫 看看類似的實際情況。我已經突出顯示了實際頁面上的價格以及透過 Chrome 開發者工具中的 Inspect
從產品頁面 xpath 提取價格 為了獲得價格,我們實際上在標記中有一些有用的數據點。 具有 CSS 類別屬性 class="price Price--large" 或結構化資料的 P 容器產品圖。 我更喜歡使用架構參考,但為了完整起見,讓我們使用這兩個範例: //p[@class='price Price--large'] 將提供: css 類別屬性 xpath 範例 儘管您可以看到在這個價格下 HTML 原始碼中有很多可用空間,因此最好將其全部包裝在標準化空間函數中: //p[標準化空間(@class) = '價格價格--大'] 我們也可以透過在頁面上使用結構化資料來走另一種方式。
假設產品的架構標記在不久的將來不會發生變化,對其網站的 HTML 結構和 CSS 類別名稱進行任何更改。 試試看: //meta[@itemprop='price']/@content 或者 //*[@itemprop='價格']/@content html 結構和 css 類別名稱的變化 xpath 範例 使用上面的表達式,我們可以從該產品頁面上的結構化資料中提取許多有趣的信息,包括: 元素 X路徑 價格 //元[@itemprop='價格']/@content 影像 //元[@itemprop='image']/@content 姓名 //h1[@itemprop='名稱'] 產品代碼 //標題[@itemprop='productId']/@content 請求狀態 //元[@itemprop='可用性']/@content 另請閱讀 如何顯示目前站點結構 從表中提取數據 我遇到了一個有趣的問題,其中產品 SKU 和重量等重要資料元素被放置在「技術詳細資料」表中,如下所示: 從 xpath 表中提取數據 為了提取 SKU,我使用 text() 選擇了包含文字“BG”的表格單元格節點測試: //td[包含(text(),'BG')] 然而,對於重量,問題有點不同,因為值單元格中的數字總是不同的!解決方案如下所示: //td[包含(text(),'Weight')]/following-sibling::td 其中 follow-sibling 選擇沿軸的下一個 td 中包含的值。