zoukankan      html  css  js  c++  java
  • Python爬虫教程-22-lxml-etree和xpath配合使用

    Python爬虫教程-22-lxml-etree和xpath配合使用

    • lxml:python 的HTML/XML的解析器
    • 官网文档:https://lxml.de/
    • 使用前,需要安装安 lxml 包
    • 功能:
      • 1.解析HTML:使用 etree.HTML(text) 将字符串格式的 html 片段解析成 html 文档
      • 2.读取xml文件
      • 3.etree和XPath 配合使用

    lxml 的安装

    • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【lxml】>【install】
    • 具体操作截图:
      这里写图片描述这里写图片描述这里写图片描述

    lxml-etree 的使用

    # 先安装lxml
    
    # 用 lxml 来解析HTML代码
    
    from lxml import etree
    
    text = '''
    <div>
        <ul>
            <li class="item-0"><a href="0.html">item 0 </a></li>
            <li class="item-1"><a href="1.html">item 1 </a></li>
            <li class="item-2"><a href="2.html">item 2 </a></li>
            <li class="item-3"><a href="3.html">item 3 </a></li>
            <li class="item-4"><a href="4.html">item 4 </a></li>
            <li class="item-5"><a href="5.html">item 5 </a></li>
        </ul>     
    </div>
    '''
    
    # 利用 etree.HTML 把字符串解析成 HTML 文件
    html = etree.HTML(text)
    s = etree.tostring(html).decode()
    
    print(s)
    

    运行结果

    这里写图片描述

    lxml-etree 的使用

    # lxml-etree读取文件
    from lxml import etree
    
    xml = etree.parse("./py24.xml")
    sxml = etree.tostring(xml, pretty_print=True)
    
    print(sxml)
    

    运行结果

    这里写图片描述

    etree和XPath 配合使用

    # lxml-etree读取文件
    from lxml import etree
    
    xml = etree.parse("./py24.xml")
    print(type(xml))
    
    # 查找所有 book 节点
    rst = xml.xpath('//book')
    print(type(rst))
    print(rst)
    
    # 查找带有 category 属性值为 sport 的元素
    rst2 = xml.xpath('//book[@category="sport"]')
    
    print(type(rst2))
    print(rst2)
    
    # 查找带有category属性值为sport的元素的book元素下到的year元素
    rst3 = xml.xpath('//book[@category="sport"]/year')
    rst3 = rst3[0]
    
    print('-------------
    ',type(rst3))
    print(rst3.tag)
    print(rst3.text)
    

    运行结果

    etree和XPath 配合使用结果
    这里写图片描述

    更多文章链接:Python 爬虫随笔


    - 本笔记不允许任何个人和组织转载
  • 相关阅读:
    如何解决UITextField挡住键盘的问题
    设置UITextField中能输入的最大的字数
    如何判断IOS的设备版本型号
    IOS中如何实现对话聊天
    精美的iOS图片欣赏
    关于IOS 应用图标的设置
    ios7中添加多个按钮
    elementary0.4:快速配置工具
    elementary:网易云音乐白条解决
    deepin下eclipse快捷方式
  • 原文地址:https://www.cnblogs.com/xpwi/p/9600943.html
Copyright © 2011-2022 走看看