lxml解析网页

[TOC]

1. 什么是lxml

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

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

2. 初次使用

  1. 安装
sudo pip3 install lxml  
  1. 初次使用
# 导入lxml
from lxml import etree

# html字符串
html_str = """
<html>
<head>
<title>demo</title>
</head>
<body>
<p>1111111</p>
</body>
</html>
"""

# 利用html_str创建一个节点树对象
html = etree.HTML(html_str)
type(html) # 输出结果为:lxml.etree._Element
  1. 首次解析HTML

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

# 我们现在要获得上面的html文件中的p标签的内容
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来完成讲解。

from lxml import etree

html_str = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值