欢迎光临散文网 会员登陆 & 注册

Python个人学习笔记 XPath语法与lxml.etree模块

2023-07-13 12:31 作者:ベレッタ  | 我要投稿

lxml.etree

    解析HTML代码

XPath

    常用语法

    常用用法示例

    运算符



解析HTML代码

⑴ 解析本地文件 parse()


⑵ 解析字符串HTML代码 HTML()

其实用response.html可以直接获取非字符串类型的HTML代码,没必要再用etree.HTML()解析一遍。

区别就是匹配节点后输出的方式不同。response.html会显示标签中属性和属性值,etree.HTML()解析的代码只显示标签名。



XPath

XPath可用于爬虫中匹配标签对。

常用语法

示例可参考 requests库 requests_html库——简单数据爬取


常用用法示例

⑴ 获取所有节点 //*


⑵ 获取父节点 ..

多个节点的父节点相同时,不会重复返回父节点。

获取<body>下<div>标签的父节点。一共会匹配到5个<div>,只会返回1个<body>。


⑶ 获取文本 /text()    /    获取属性值 @

① 获取所有<td class="..." colspan="..." style="...">下<a>的文本。

② 获取所有<td class="..." colspan="..." style="...">下<a>的title的属性值。



⑷ 模糊匹配文本 contains()

① 匹配属性值

② 匹配文本


⑸ 指定索引

在之前的例子中获取东方作品名中,一共有4个表格:旧作、整数作、小数点作、黄昏作。

用索引 [2] 指定第二个表格(新作),再获取作品名。

last():返回最后一个索引值。

position():返回当前索引值。

用 [last()-2]、[position()=2] 同样可以获取第二个表格。

▲索引从1开始。


⑹ 指定轴(节点关系) ::

示例参考 requests库 requests_html库——简单数据爬取


运算符

示例:

获取<head>和<table>标签。


Python个人学习笔记 XPath语法与lxml.etree模块的评论 (共 条)

分享到微博请遵守国家法律