爬蟲常用Xpath和CSS3選擇器對比
1. 簡介
CSS是來配合HTML工作的,和Xpath對比起來,CSS選擇器通常都比較短小,但是功能不夠強大。CSS中的空白符' '和Xpath的'//'都表示當前元素的所有后代(子孫)元素。
2. 對比
對於元素(標簽)的操作,Xpath和CSS基本上都能通過各自的語法達到相同的動作,並且爬蟲中使用的都是一些相對簡潔明了的操作。
結果 | CSS3選擇器 | Xpath表達式 |
所有元素 | * | //* |
所有p元素 | p | //p |
所有p元素的子元素(只選一代) | p>* | //p/* |
所有父元素為div的p元素 | div p | //div//p |
所有id為foo的元素 | #foo | //*[@id="foo"] |
所有class為foo的元素 | .foo | //*[@class="foo"] |
擁有某個屬性的元素 | *[title] | //*[@title] |
title屬性為target的所有元素 | *[title="target"] | //*[@title="target"] |
所有p元素的第一個子元素 | p>*:first-child | //p/*[0] |
所有擁有a元素的p元素 | 無法實現 | //p[a] |
p元素的下一個兄弟元素 | p+* | //p/following-sibling::*[0] |
3. 參考資料