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方法。翻译