当前位置:   article > 正文

lxml解析网页

yiqlxml

[TOC]

1. 什么是lxml

lxml是干什么的?简单的说来,lxml是帮助我们解析HTML、XML文件,快速定位,搜索、获取特定内容的Python库。我们知道,对于纯文本的HTML文件的查找可以使用正则表达式BeautifulSoup等完成。lxml也是对网页内容解析的一个库。

那么为什么要用lxml呢?据听说他比较快。我没有用来做过大项目,对解析速度理解不是很深刻。我用lxml只是因为它似乎比BeautifulSoup好用。

2. 初次使用

  1. 安装
sudo pip3 install lxml  
  1. 初次使用
  1. # 导入lxml
  2. from lxml import etree
  3. # html字符串
  4. html_str = """
  5. <html>
  6. <head>
  7. <title>demo</title>
  8. </head>
  9. <body>
  10. <p>1111111</p>
  11. </body>
  12. </html>
  13. """
  14. # 利用html_str创建一个节点树对象
  15. html = etree.HTML(html_str)
  16. type(html) # 输出结果为:lxml.etree._Element
  1. 首次解析HTML

不用理会下面代码中出现的新的方法和各种解析的技巧。先看一下lxml如何快速方便的解析html.

  1. # 我们现在要获得上面的html文件中的p标签的内容
  2. p_str = html.xpath('//body/p/text()') # 返回结果为一个列表:['1111111']

上面的例子,给出一个lxml如何解析HTML文件的实例。后文中众多的知识点,只不过是讲解更多的xpath解析方法技巧。

3. xpath

我们一直再讲lxml,这里突然出现xpath是干什么的?lxml的主要功能是解析HTML,他是利用什么语法来解析HTML的呢?就是利用xpath,因此,我们需要了解如何使用xpath。

xpath将html文档看做一个有众多的节点按照特定级别组织的节点树,对于其中内容的解析,又三种主要的措施:

  1. 标签定位
  2. 序列定位
  3. 轴定位

很抱歉,我们又引入了新的概念。但现在我们解释这些概念是不明智的,还是先看一下如何使用。

3.2 标签定位

为了说明xpath各种定位语法,我们下面利用如下的HTML来完成讲解。

  1. from lxml import etree
  2. html_str = """
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <meta http-
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/1006261
推荐阅读
相关标签
  

闽ICP备14008679号