美文网首页
爬虫xpath

爬虫xpath

作者: WANGLIN_HZ | 来源:发表于2018-11-22 20:12 被阅读0次

    什么是xpath?

    • XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
    • XML 指可扩展标记语言(EXtensible Markup Language)
    • XML 是一种标记语言,很类似 HTML
    • XML 的设计宗旨是传输数据,而非显示数据
    • XML 的标签需要我们自行定义
    • XML 被设计为具有自我描述性
    • XML 是 W3C 的推荐标准

    XPath路径表达式

    在使用XPath之前,需要先了解下XPath的节点,路径概念,这也是XPath这门语言的单词和语法。不求全通,至少了解嘛。其中,路径表达式是xpath()的传入参数。xpath()使用路径表达式对XML文档中的某个节点(或者多个节点)进行定位。路径表达式实例:/html/body/div[@class=”content”] 。按照节点和路径概念,这个表达式是按照html,body,div层级关系,寻找属性里有class=”content”的div节点。当然,这个结果也可能是多个节点。

    • notename :查找出html所有标签名为notename的节点
    • / : 表示从根节点开始查找(相对性的)
    • //: 从任意位置匹配出你想要的节点
    • . :选取当前节点
    • .. :选取当前节点的父节点
    • @ : 表示选择属性
    • text() :取标签的文本内容
    • notename[1] : 取标签名为notename的第一个节点
    • notename[last()] : 取标签名为notename的最后一个节点

    XPath使用场景

    在爬虫技术领域里为什么需要XPath呢?这是因为我们通过爬虫去网上爬取的很多都是html文档(比如爬知乎,爬微博),而我们通常需要对html数据进行解析,获取对我们有用的数据,然后再将这些处理后的数据存储起来。而解析HTML就需要用到XPath。(另外也可以通过css query来定位节点,但是一般其背后也是利用了XPath技术,而且XPath更加灵活和通用)

    节点之间的关系

    节点之间的关系主要有以下几种:

    • 父子关系:<book>节点是<title>, <author>等节点的父节点(Parent),相应的,<title>等节点为<book>节点的子节点(Children)
    • 兄弟关系(Sibling):<title>, <author>互为兄弟关系
    • 先辈(Ancestor): 父节点,父的父都是先辈,比如<book>, <bookstore>是<author>的先辈
    • 后代(Descendant): 子节点,子的子都是后代,如<book>, <author>都是<bookstore>的后代

    相关文章

      网友评论

          本文标题:爬虫xpath

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