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总结
  • 相关阅读:
    第二章.md
    第四章.md
    第一章.md
    第九章.md
    png简析.md
    第五章.md
    好看的粒子效果
    缓动 减速运动
    收集的小效果
    粒子效果2
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8479968.html
Copyright © 2011-2022 走看看