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 爬虫随笔


    - 本笔记不允许任何个人和组织转载
  • 相关阅读:
    php中strstr、strrchr、substr、stristr四个函数的区别总结
    Python
    PHP Date()函数详细参数
    mysql插入数据时,中文乱码
    mysql中类似indexOf的方法LOCATE()
    获取某个文件夹中所有txt文件
    响应式图片布局
    响应式表格布局
    css媒体类型
    html+css调用服务器端字体
  • 原文地址:https://www.cnblogs.com/xpwi/p/9600943.html
Copyright © 2011-2022 走看看