《精通Scrapy网络爬虫》第三章

xpath

即 xml 路径语言,可以快速定位到xml文件中元素的位置 

   表达式                                描述
    /                                        选中文档中的根
    .                                         选中当前节点
    ..                                        当前节点的父节点
    ELEMENT                          子节点中所有ELEMENT元素节点
    //ELEMENT                       后代节点中所有ELEMENT元素节点
    *                                        所有元素子节点
    text()                                 文本子节点
    @ATTR                             选中名为ATTR的属性节点
    @*                                    所有属性节点
    [谓语]                                用来查找某个特定的节点或者包含某个特定值的节点

CSS

即 层叠样式表

    表达式                                描述
    *                                      选中所有元素
    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元素

    E::text                    选中E元素的文本节点

注意:

CSS语法比xpath要简洁一些,但是功能不如xpath强大。实际上在scrapy中,当我们调用selector对象的css方法时,其内部会用python库cssselect将css选择器表达式翻译成xpath表达式,然后调用Selector对象的XPATH方法。

猜你喜欢

转载自my.oschina.net/u/3871035/blog/1823521
今日推荐