爬虫玩家必备技能:xpath语法入门教程

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来处理网页数据的快速入门分享。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

 行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时点击加入群: 1150305204,里面有各种测试开发资料和技术可以一起交流哦。

你可能感兴趣的:(前端,javascript,html,自动化测试,程序员)