xpath语法

作者: 小鬼客 | 来源:发表于2019-03-03 16:16 被阅读89次

    python爬去网页数据时,如果使用requests库和xpath,首先需要使用lxml的etree将获取的网页数据完整,因为有时候使用requests.get(url ,headers=headers)获取到的数据不完整。etree模块就可以自动修复html文本。

    安装lxml:

    lxml是python的一个解析库,支持html和xml的解析,同时也支持xpath解析方式。

    pip install lxml
    

    etree模块的使用

    from lxml import etree
    对网页HTML的解析,使用etree.HTML(html.content)
    接下来就可以使用xpath抓取对应的需求节点的信息了。

    xpath的语法

    选取节点:
    /: 表示选取直接子节点

    <html><body><div></div></body></html>
    xpath:  /div    
    result: null
    season:  /div表示获取根节点下的div但是,根节点下只有<html> 这一个子节点,/是不能获取到子孙节点的
    

    //: 表示获取任意节点
    谓语:
    通过列子来说明
    //book/div[1]
    explanation: 获取book节点下的第一个div节点
    注意: xpath语法的下标是从数字1开始的,这里和python的语法是有区别的
    //book/div[last()]
    explanation: 获取book节点的最后一个div节点
    //book/div[positon()<3]
    explanation: 获取book节点下的前两个div节点
    //book/div[@price=1]
    explanation: 获取book节点下属性price=1 的div节点
    //book/div[contains(@class,"f")]
    explanation: 获取book节点下class属性中包含f的div节点
    通配符:
    : 表示获取任意的节点
    @
    :表示任意属性
    多个路径:
    | : //book[@price=1] | //book[@price=2] 表示获取属性price=1或者price=2的book节点
    逻辑运算符:
    < ,> , <= ,>= , !=, and , or

    相关文章

      网友评论

        本文标题:xpath语法

        本文链接:https://www.haomeiwen.com/subject/rbtmuqtx.html