xpath 语法

ads

xpath,一种用于描述元素位置和属性的语法,能够让你轻松处理网页数据,成为爬虫玩家的必备技能。


准备工作:安装和导入所需库

要使用xpath,我们需要两个必要的库——lxml和requests。

pip install lxml
pip install requests

第一步:获取和解析网页

import lxml.etree
import requests


url = "https://www.example.com"  # 你感兴趣的网页URL
response = requests.get(url)  # 发送GET请求
html = response.text  # 获取网页的源代码
html_obj = lxml.etree.HTML(html)  # 解析网页为HTML对象

第二步:xpath表达式快速了解

xpath表达式是一种用于描述元素位置和属性的语法,它由一系列的步骤组成,每个步骤都以/或//开头。/表示从根节点开始查找,//表示从任意节点开始查找。每个步骤都可以包含节点名称、谓词和轴等条件,用于过滤和选择元素。以下是一些常见的xpath表达式,以及它们的含义和效果:

# 查找所有的div元素:
"//div" 

# 查找id属性为content的div元素,其中 @ 表示属性,[] 表示谓词没用于过滤条件:
"//div[@id='content']" 

# 查找class属性包含item的div元素,contains是一个函数,用于判断属性值是否包含某个字符串:
"//div[contains(@class, 'item')]"

# 查找第一个div元素下的所有p元素,[1]表示位置,/表示子节点。,:
"//div[1]/p"

# 查找所有含有a子元素的li元素,a表示节点名称,不加@或者/:
"//li[a]"

# 查找所有a元素的href属性值:
"//a/@href"
# 这个表达式会返回网页中所有a元素的href属性值,@href表示属性名称。

# 查找所有文本为"Hello"的span元素,text()是一个函数,用于获取文本字符串:
"//span[text()='Hello']"

第三步:提取数据

lxml库提供的xpath方法来执行xpath表达式,返回值为列表。例:

links = html_obj.xpath("//a")  # 返回所有a元素
for link in links:  
    text = link.text 
    href = link.get("href")  
    print(text, href)  

第四步:修改数据

修改网页中的元素和数据。

h1 = html_obj.xpath("//h1")[0]  # 返回第一个h1元素
h1.text = "New Title"  

第五步:保存结果

lxml库提供的tostring方法来将修改后的HTML对象转换为字符串

new_html = lxml.etree.tostring(html_obj, encoding="utf-8"
with open("new.html""wb"as f:  
    f.write(new_html)  

以上就是勇哥关于使用xpath来处理网页数据的快速入门分享。


总结

以上就是勇哥今天为各位小伙伴准备的内容,如果你想了解更多关于Python自动化测试的知识和技巧,欢迎关注我:公众号博客CSDNB站:测试玩家勇哥;我会不定期地分享更多的精彩内容。感谢你的阅读和支持!


题外话,勇哥打算把新建的技术交流群,打造成一个活跃的高质量技术群。工作中遇到的技术问题,都可以在里面咨询大家,还有工作内推的机会。有兴趣的小伙伴,欢迎加我(记得备注是进群还是报名学习)

长按上方二维码2秒,关注我


勇哥,10年落魄测试老司机,技术栈偏python,工作之余为粉丝进行简历修改、面试辅导、模拟面试、资料分享、一对一自动化测试教学辅导等副业发展。目前已服务十多位小伙伴,取得高薪offer。

,测试干货及时送达


往期精选文章:
接口自动化测试项目2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等
揭秘抓包利器:Python和Mitmproxy让您轻松实现接口请求抓取与分析!
构建高效的接口自动化测试框架思路
Pytest 快速入门
接口自动化之测试数据动态生成并替换
requests模块该如何封装?
接口自动化如何封装mysql操作
一文看懂python如何执行cmd命令
最通俗易懂python操作数据库
python-Threading多线程之线程锁
python正则一篇搞掂
性能测试之必备知识

性能分析思路

Python + ChatGPT来实现一个智能对话的钉钉机器人
一文看懂python如何执行cmd命令



最后编辑于:2024/1/15 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com