zoukankan      html  css  js  c++  java
  • 解析库的使用

    使用XPath

      XPath,全称XML Path Language,即XML路径语言,它是一门在xml文档中查找信息的语言。它最初是用来搜寻XML文档的,但是它同样使用于HTML文档的搜索。

      所以在做爬虫时,我们完全可以使用XPath来做相应的信息抽取。

    XPath 常用规则


        表  达  式    描  述


        nodename      选取此节点的所有节点

        /            从当前节点选取直接子节点

        //         从当前节点选取子孙节点

        .             选取当前节点

        ..         选取当前节点的父节点

        @          选取属性


    例如://title[@lang="eng"]

    这就是一个规则,它代表选择所有名称为title,同时书属性lang的值为eng的节点。

    准备工作

      使用之前,首先要确保安装好lxml库,window下命令行下输入 pip3 install lxml 

    实例引入

      现在通过实例来感受一下XPath来对网页解析的过程,相关的代码如下:

    text = '''
    <div>
        <ul>
            <li class='item-0'><a href="link1.html">frist item</a></li>
            <li class='item-1'><a href="link2.html">second item</a></li>
            <li class='item-inactive'><a href="link3.html">third item</a></li>
            <li class='item-1'><a href="link4.html">fourth item</a></li>
            <li class='item-0'><a href="link5.html">fifth item</a>
        </ul>
    </div>
    '''
    # 调用HTML进行初始化,构造XPath解析对象
    html = etree.HTML(text)
    result = etree.tostring(html)
    print(result.decode('utf8'))

    结果:

    <html><body><div>
        <ul>
            <li class="item-0"><a href="link1.html">frist item</a></li>
            <li class="item-1"><a href="link2.html">second item</a></li>
            <li class="item-inactive"><a href="link3.html">third item</a></li>
            <li class="item-1"><a href="link4.html">fourth item</a></li>
            <li class="item-0"><a href="link5.html">fifth item</a>
        </li></ul>
    </div>
    </body></html>

    这里我们调用tostring()方法输出修正后的html代码(注意最上面的html最后的一个li节点是没有闭合的),但是结果是byte类型的。这里利用decode()方法将其转成str类型。

  • 相关阅读:
    Tuxedo 介绍
    winform如何不卡界面
    银行基金代销系统调研
    如何在wcf中用net tcp协议进行通讯
    20190710用控制台启动一个wcf服务
    wcf必知必会以及与Webapi的区别
    2019年7月第一周总结-RabbitMQ总结
    RabbitMQ入门学习系列(七) 远程调用RPC
    RabbitMQ入门学习系列(六) Exchange的Topic类型
    RabbitMQ入门学习系列(五) Exchange的Direct类型
  • 原文地址:https://www.cnblogs.com/jeavy/p/11285553.html
Copyright © 2011-2022 走看看