Xpath是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。
- 安装lxml模块
- pip install lxml (此处如果下载速度比较慢,可以通过查看之前的博客所写的方法)
- 导入extree(from lxml import etree)
- tree = extree.XML()
- tree = extree.html() 服务器响应文件
- tree = extree.parse() 解析本地文件
比如: html_tree = etree.parse(‘xxx.html’) - 然后通过tree即可进行相关的xpath操作
路径获取
- 鼠标右键查看网页源代码
- 快捷键 Ctrl + Shift + x 打开xpath工具
- 在Query框输入路径,在Result中显示定位的值
环境的安装
使用 xpath 需要安装 lxml 库,在这里需要用pip的安装命令,所以我在这里给大家总结了两种提高速度的方式.
使用国内的镜像下载
- 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 自己要下载的包
注意 : i即是表示临时的意思
- 设为默认
注意: 升级 pip 到最新的版本 (>=10.0.0) 后进行配置
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
在这里我们也可以采用如下方式:
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
xpath常用表达式
基础使用
实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。有两种方式:
1、将本地的html文档中的源码数据加载到etree对象中
etree.parse('filePath', etree.HTMLParser()) # filePath为文件的路径
示例:
from lxml import etree # 导包
html = etree.parse('./test.html', etree.HTMLParser()) # ./test.html为本地的html文件的路径
html.xpath('xpath表达式')
2、将从互联网上获取的源码数据加载到etree对象中
etree.HtML('page_data') # page_data为从页面获取的源码数据
示例:
from lxml import etree # 导包
html = etree.HtML('page_data') # page_data为从页面获取的源码数据
html.xpath('xpath表达式')
Xpath使用工具
chrome生成xpath表达式
经常使用chrome的小伙伴都应该知道这个功能,在"审查"状态下(快捷键ctrl+shift+i,F12),定位到元素(快捷键ctrl+shift+c) ,在Elements选项卡中,右键元素 Copy->Copy xpath,就能得到该元素的xpath了