zoukankan      html  css  js  c++  java
  • lxml解析html与元素定位

    lxml、beautifulsoup和正则表达式都可以解析定位html元素。前两者中,lxml比beautifulsoup效率高,所以采用lxml解析html。

    方法:

    from lxml import html

    tree=html.fromstring(response.text)

    此时tree是一个HtmlElement对象,就可以查找定位元素了。

    1.定位元素

    element=tree.xpath('//span[@id="idname"]')

    2.获取元素文本

    element.text

    3.获取元素所有属性字典

    element.attrib  返回一个字典包含该元素的所有属性

    4.获取元素的指定属性

    element.get('href')

    5.关于preceding-sibling:: 和 following-sibling:::

    preceding-sibling::前缀表示同一层的上一个节点。
    following-sibling::前缀表示同一层的下一个节点。
    following-sibling:: 就是任意下一个节点,而 “following-sibling::u” 就是下一个u节点。
    preceding-sibling:: 同理。

    sbs = page.xpath('//body//following-sibling::a')
    for sb in sbs:
        print(sb.tag)
        # 打印:a a a a a a ...
    
    sbs = page.xpath('//body/h1/following-sibling::*')
    for sb in sbs:
        print(sb.tag)
        # h1 下,所有 h1 同级的子节点(标签)
        # 打印:p p a a a a ...
    
    sbs = page.xpath('//body/h1/preceding-sibling::*')
    for sb in sbs:
        print(sb.tag)
        # h1 上,所有 h1 同级的子节点(标签)
        # 打印: p、meta、title、meta、meta

    内容出处:lxml总结
  • 相关阅读:
    js复制功能
    网页倒退监听
    CSS 设置table下tbody滚动条
    js滚动条滚动到底部 例如聊天这种
    时间格式转换器
    js插件整理和总结
    Js判断移动端是否存在客户端:如果存在则打开,如果不存在则下载
    qt布局添加控件的父控件说明
    qt控件模糊效果
    QT TCPSocket和QTCPServer使用
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8479968.html
Copyright © 2011-2022 走看看