xpath与lxml解析页面

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)
上一篇:LXML库简单使用


下一篇:起点中文网小说爬取-etree,xpath,os