使用 XPath 選擇 CSS 類別
在網頁抓取的上下文中,根據 CSS 類別準確定位特定元素至關重要。雖然 CSS 選擇器在處理 HTML 時很簡單,但在處理 XML 文件或利用進階網頁抓取技術時,XPath 就變得必要了。
問題:使用 XPath 選擇單一類別
這個問題源自於需要使用 XPath 僅根據「日期」類別來選擇元素。但是,提供的程式碼片段會產生意外的結果。
解決方案:正確的 XPath 等效項
要正確選擇 XPath 中具有特定類別的元素,應使用以下語法:
在此表達式中:
- normalize-space(@class)刪除前導和尾隨空格並將多個空格折疊為一個,確保類別屬性的格式一致。
- concat(" ", normalize-space(@class), " ") 在規範化類別值周圍新增空格使其與目標類別名稱具有可比性。
- contains(...) 在修改後的類別屬性中搜尋目標類別名稱
避免不正確的方法
要避免的兩個常見但有缺陷的XPath 選擇器包括:
- //*[@class="date"] :不考慮具有多個類別的元素。
- //*[contains(@class, "date")]:符合類別名稱包含“date”的元素,例如“foobar”,這是不正確的。
Credit
這裡提供的解決方案歸因於網路爬蟲同事發表了一篇有價值的部落格文章來解決這個特定問題。我們感謝他們分享他們的見解。
以上是如何使用XPath正確選擇CSS類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!