xpath
即 xml 路徑語言,能夠快速定位到xml文件中元素的位置 css
表達式 描述
/ 選中文檔中的根
. 選中當前節點
.. 當前節點的父節點
ELEMENT 子節點中全部ELEMENT元素節點
//ELEMENT 後代節點中全部ELEMENT元素節點
* 全部元素子節點
text() 文本子節點
@ATTR 選中名爲ATTR的屬性節點
@* 全部屬性節點
[謂語] 用來查找某個特定的節點或者包含某個特定值的節點python
CSS
即 層疊樣式表scrapy
表達式 描述
* 選中全部元素
E 選中E元素
E1,E2 選中E1,E2元素
E1 E2 選中E1後代元素中的E2元素
E1>E2 選中E1子元素中的E2元素
E1+E2 選中E1兄弟元素中的E2元素
.CLASS 選中class的屬性包含class的元素
#ID 選中ID屬性爲id的元素
[ATTR] 選中包含ARRT屬性的元素
[ARRT=VALUE] 選中包含ARRT屬性而且值爲VALUE的元素
[ARRT~=VALUE] 選中包含ARRT屬性而且值包含VALUE的元素
E:nth-child(n) 選中E元素,且該元素必須是其父元素的第n個子元素
E:nth-last-child 選中E元素,且該元素必須是其父元素的倒數第n個子元素
E:first-child 選中E元素,且給元素必須是其父元素的第一個子元素
E:last-child 選中E元素,且給元素必須是其父元素的最後一個子元素
E:empty 選中沒有子元素的E元素spa
E::text 選中E元素的文本節點.net
注意:
CSS語法比xpath要簡潔一些,可是功能不如xpath強大。實際上在scrapy中,當咱們調用selector對象的css方法時,其內部會用python庫cssselect將css選擇器表達式翻譯成xpath表達式,而後調用Selector對象的XPATH方法。翻譯