• Xpath 选择器


    Xpath介绍?

    网页由三部分组成: HTML, CSS, JaveScript, HTML页面标签存在层级关系, 即DOM树,在获取数据目标时可以根据网页层次关系定位标签, 在获取文本属性, 每个标签就是一个Dom

    另外 xpath 还有其他领域会用到,如:爬虫框架 Scrapy, 手机APP框架 Appium

    什么时候用css,什么时候xpath?
    当查找元素比较简单,用css没错,如果复杂,用xpath比较好

    Xpath 安装

    # 使用步骤
    1。xpath安装:pip install lxml

    2. 使用步骤:
    # 导包
    from lxml import etree
    res = requests.get(url= url, headers=headers)
    tree = etree.HTML(res.text) # 加载直接从网页上爬取来的数据
    tree = etree.parse(html,etree.HTMLParser()) # 加载本地HTML 页面,html 是文件名字

    tag_or_attr = tree.xpath('xpath表达式')

    常用语法

    1. nodename:   节点定位名(标签)
      .:         当前
    2. .//:      从当前节点选取子孙节点
    3. ./ :      从当前节点选取直接子节点
    4. nodename[@attribute = '...']:    根据属性定位标签 '//div[@class=''ui-main]'
    5. @attributename:    获取属性
    6. text()    获取文本

    7. /:     表式整个html根节点

    属性匹配两种情况: 多属性匹配 & 单属性多值匹配

    # 多属性匹配
    示例: tree.xptah('//div[@class="item" and @name="text"]/text()')
    <div class="item" name="test">div标签1</div>
    <div ckass= "item">div2标签</div>
    tree.xpath('//div[@class="item" and @name="test"]/text()' )
    # 单属性匹配多值匹配
    示例:tree.xpath('//div[contains(@class,"itrm")]/text()')

    # 按顺序选择:
    1.索引定位: 从1开始(牢记,牢记,牢记)
    2. last()函数:last()-1代表倒数第二个
    3. position()函数: 位置

  • 相关阅读:
    元类,单例模式
    面向对象高阶
    类的三大特性---封装以及Property特性
    c# 中的string(神奇的string)
    c#中的equal和getHashCode
    linq中的Distinct的使用(附带IComparable和IComparer的复习和使用)
    flex布局完整示例
    flex布局中flex-basis的理解
    CSS两端对齐的效果;
    理解c#中扩展性代码
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13182716.html
Copyright © 2020-2023  润新知