美文网首页
XPath使用小结

XPath使用小结

作者: csr_yang | 来源:发表于2018-04-25 15:06 被阅读5次

    使用scrapy爬虫,不可避免的需要对网页结构进行分析并提取,其中用到的一个重要的工具就是XPath。XPath可以帮助我们很方便的对html元素进行定位选择。

    在Chrome中使用XPath

    在chrome中使用XPath,只需要在开发者工具中点击控制台(Console)标签,然安徽使用$x功能就可以了。


    1.png

    比如获取所有的section标签,我们使用$x('//section'),控制台中就可以看到一个包含所有元素的Javascript数组。将光标移动到这个数组上,还可以看到被选择的元素被高亮显示。


    2.png

    至于这个表达式('//section')的规则是如何的,下面来粗略的介绍一下。

    XPath表达式

    / 单斜杠

    HTML文档的层级结构的最高级是<html>标签。可以使用元素名和斜杠线选择任意元素。
    以这个html文档为例:


    12.png

    获取body标签使用/html/body
    获取body下的section标签使用/html/body/section,因为有5个section元素,所以这个结果是有5个元素的JavaScript数组。
    可以使用[index]来获取这个数组的元素。
    例如要获取第一个section标签,使用/html/body/section[1]
    注意:这个地方index是从1开始计算的,而不是0,这跟一般的数组获取元素有点不同。

    4.png

    // 双斜杠

    // 可以访问所有的同名元素
    例如,要找到html中所有的section元素,使用//section即可


    5.png

    @ 访问属性

    比如获取head中的charset属性

    6.png 7.png

    也可以只通过text()函数选择文字。

    在Chrome浏览器中获得XPath表达式

    提前应对网页发生改变

    . 避免使用数组序号
    . 用class抓取效果不一定好
    . 数据指向的class优于排版指向的class
    . id通常是最可靠的

    相关文章

      网友评论

          本文标题:XPath使用小结

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