Python爬虫 XPath 三方库lxml
前言
XPath是Python爬虫最重要的过滤原始数据的手段之一,是爬虫最核心的技术
是专业抓取HTML页面而生的,基本上只用于抓取HTML页面使用
目录
安装支持XPath三方库lxml
XPath代码入门示例
XPath表达式语法
在源代码上面直接获取XPath
安装支持XPath三方库lxml
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
XPath代码入门示例
from lxml import etreedata = "请求网页返回的源代码HTML数据"#使用 lxml 库中的 etree 模块使用XPath解析data数据
datas = etree.HTML(data)#返回的数据一般都是数据,即使是一个数据也是一个数组形式
res = datas.xpath('xpath表达式')#res这个数组里面的数据就是我们过滤好的目标数据
print(res)
XPath表达式语法
编写好的XPath表达式一般我们填入xpath()这个方法的适合习惯单引号,因为我们里面准备填写HTML里面的属性的时候我们习惯给双引号
XPath语法是按HTML页面的层级标签关系进行匹配的
/ 从根节点开始的绝对路径
// 匹配任意层级的节点
./ 表示从当前节点开始的相对路径
HTML标签后面是可以跟坐标的,坐标是从1开始的
如 /html/body/p[1]/text()
就是使用绝对路径,从html标签根路径开始,html标签下的body标签下的第一个p标签的内容text()
如//p[1]
就是使用模糊匹配,匹配到HTML文件中的所有第一个P标签的内容text()
标签[@属性名="属性值"] 可以精确匹配具体的标签,确定好属性名和属性值的唯一性
/@属性名 取这个标签该属性值
/text() 取这个标签的内容
在源代码上面直接获取XPath
不推荐,不美观而且使用起来不够灵活
Python请求的HTML有可能是懒加载的,导致请求的HTML字符串与页面源代码不符,导致使用不了
所以还是尽量自己可以按照XPath表达式语法自己编写,实际问题实际分析