当前位置:   article > 正文

Python通过Lxml库解析网络爬虫抓取到的html_lxml 解析网络html

lxml 解析网络html

Lxml是基于 libxml2解析库的Python封装。libxml2是使用C语言编写的,解析速度很好,不过安装起来稍微有点复杂。安装说明可以参考(http: //Lxml.de/installation.html),在CentOS7上中文安装说明(http://www.cjavapy.com/article/64/),使用lxml库来解析网络爬虫抓取到的HTML是一种非常高效的方式。lxml的html模块特别适合处理HTML内容,它可以快速解析大型HTML文件,并提供XPath和CSS选择器来查询和提取数据。

参考文档:Python通过Lxml库解析网络爬虫抓取到的html-CJavaPy

一、可能不合法的html标签解析

从网络上抓取到的html的内容,有可能都是标准写法,标签什么的都闭合,属性也是标准写法,但是有可能有的网站的程序员不专业,这样抓到的html解析就有可能有问题,因此,解析时先将有可能不合法的html解析为统一的格式。避免为后续的解析造成困扰。

1、lxml.html

lxml.html是专门用于解析和处理HTML文档的模块。它基于lxml.etree,但是为HTML文档的特点做了优化。lxml.html能够处理不良形式的HTML代码,这对于解析和爬取网页尤其有用。

  1. >>> import lxml.html
  2. >>> broken_html = '<ul class=body><li>header<li>item</ul>'
  3. >>> tree = lxml.html.fromstring(broken_html) #解析html
  4. >>> fixed_html = lxml.html.tostring(tree,pretty_print=True)
  5. >>> print fixed_html
  6. <ul class="body">
  7. <li>header</li>
  8. <li>item</li>
  9. </ul>

2、lxml.etree

lxml.etreelxml库中用于处理XML文档的模块。它基于非常快的XML解析库libxml2,提供了一个类似于标准库xml.etree.ElementTreeAPI的接口,但是在性能和功能性方面要更加强大。lxml.etree支持XPath、XSLT、和Schema验证等高级XML特性。

  1. >>> import lxml.etree
  2. >>> broken_html = '<ul class=body><li>header<li>item&
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/1006264
推荐阅读
相关标签
  

闽ICP备14008679号