前言
Xpath是XML路径语言,它可以用来定位网页中一个或多个元素节点,然后调用相应的方法获取节点文本或属性内容,从而完成对相应信息的抽取,相较于正则更容易读懂,初学这种解析方法可能会因对其的匹配规则不熟练而得不到相应的信息,而chropath和xpath helper是Chrome浏览器中的扩展程序插件,能智能的识别节点位置,提供Xpath形式的路径,但这些只是辅助工具,能帮助我们理解,想真正的学会还得靠自己去练习领会。
定位工具chorepath的安装
下载地址:ChroPath - Crx4Chrome插件下载
1. 安装后进行解压,然后打开Chrome浏览器,打开设置
2. 点击扩展程序
3.打开开发者模式,点击加载已解压的扩展程序,选择刚解压出来的文件夹,点击选择文件夹添加就可以了
以下则为添加成功:
4.验证使用
F12打开开发者工具,如图选择ChroPath:
ctrl+shift+c 选中 【百度一下】,就会显示出该节点的相对路径和绝对路径,复制及可使用
调试工具Xpath Helper的安装
Xpath Helper有两个功能:
1.按住shift鼠标滑到想要的页面元素能获取相应的xpath路径,及其对应的属性或内容
2.能输入编写的xpath路径,验证是否匹配正确的节点
这些在xpath测试过程中都十分有用
网友提供的网盘下载地址:百度网盘 请输入提取码 提取码:337b
Xpath-helper插件网盘下载地址 提取码: 4wk6
下载后会发现是以crx为后缀的文件,将其后缀名改为rar压缩包格式,然后解压到同名文件夹中,加入浏览器的操作同上。
如下图,点击Xpath Helper即可打开使用,同样操作即可关闭:
可验证chropath给出的路径内容是否正确:
selenium中插件的配置
后续使用中发现,单独打开Chrome浏览器可以使用这些插件,但是用selenium打开Chrome浏览器时,却不存在这些插件,这是因为每次selenium运行程序,开启的都是纯净模式的浏览器页面,没有本地浏览器缓存设置,设置的内容在再次运行程序时都相当于初始化了一次,所以要想在selenium运行后仍能使用插件或进行浏览器配置,需要在程序代码中进行相应的操作。
配置方法
方法一:
在Chrome浏览器搜索栏中输入 chrome://version/
复制 个人资料路径,注意:不包括最后的 \Default :
from selenium import webdriver
# chromeOptions() 是一个配置 chrome 浏览器参数的类
chrome_options = webdriver.ChromeOptions()
# 添加启动参数
chrome_options.add_argument(r'--user-data-dir=个人资料路径')
# 启动浏览器
browser = webdriver.Chrome(options=chrome_options)
browser.get('https://www.baidu.com')
提示:在运行程序之前,关闭所有已经打开的Chrome浏览器
不然会报错提示:invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir,显示用户数据目录已在使用。
成功配置:
方法二:
xpath-helper为例,通过crx文件路径添加插件:
from selenium import webdriver
# chromeOptions 是一个配置 chrome 启动是属性的类
chrome_options = webdriver.ChromeOptions()
# path:下载的crx文件的路径
extension_path = 'G:/Python/xpath_helper_2_0_2.crx'
# add_extension() 添加扩展应用
chrome_options.add_extension(extension_path)
# 启动浏览器
browser = webdriver.Chrome(options=chrome_options)
browser.get('https://www.baidu.com')
注意:较新版本的Chrome浏览器只支持crx3格式文件,直接使用下载的crx文件会报错。
报错提示:CRX verification failed to parse extension header. Chrome supports only CRX3 format. Does the extension need to be updated?
修改方式:扩展程序设置中打包对应的扩展程序,得到的就是新的crx3文件了。
最后再次运行程序,能成功添加xpath-helper插件:
总结
以上是Chrome浏览器的xpath相关插件的下载方式及使用方法,并成功配置于selenium启动的Chrome浏览器中,相关selenium能配置Chrome浏览器的参数还有很多,如感兴趣可以参考csdn博客:selenium+python配置chrome浏览器的选项_Kosmoo的博客-优快云博客_add_experimental_option