lxml:
HTML 解析器 BeautifulSoup(markup, “lxml”)
速度快
文档容错能力强
需要安装C语言库
处理网页数据
lxml 大部分功能都存在 lxml.etree中
xpath:全称XML PATH Language, 一种小型的查询语言;
支持的解析:
XML格式
html格式
通过元素,和属性进行导航
示例
import lxml.etree as etree
# 1). 将html内容转化成xpath可以解析/匹配的格式;
html = """
<!DOCTYPE html>
<html>
<head lang="en">
<title>xpath测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<div id="content">
<ul id="ul">
<li>NO.1</li>
<li>NO.2</li>
<li>NO.3</li>
</ul>
<ul id="ul2">
<li>one</li>
<li>two</li>
</ul>
</div>
<div id="url">
<a href="http:www.58.com" title="58">58</a>
<a href="http:www.csdn.net" title="CSDN">CSDN</a>
</div>
</body>
</html>
"""
selector = etree.HTML(html)
print(selector)
# 2).
# //: 对全文进行扫描
str = selector.xpath('//div[@id="content"]/ul[@id="ul"]/li/text()')
print(str)
print(type(str))
# 需求: 获取文件中div的属性id为”url“里面的所有a标签的href属性
str = selector.xpath('//div[@id="url"]/a/@href')
print(str)
# 获取符合条件的标签内容;
str = selector.xpath('//div"]').extract()
print(str)