爬虫大法之xpath详解

简介: 爬虫大法之xpath详解

Selenium找元素的方法有id,classname,tag,xpath,选择器。其实使用哪个无所谓,只要你能熟练地找到元素就行了。

这里面还需要再说一个方法,那就是xpath。无论你是否用到Selenium,当你认真地学爬虫的话,xpath也是经常遇到的。

首先我们知道xpath是什么?它有什么用?XPath (XML Path Language) 是由国际标准化组织W3C指定的,用来在 XML 和 HTML 文档中选择节点的语言。目前主流浏览器 (chrome、firefox,edge,safari) 都支持XPath语法

绝对路径

绝对路径就是具有确定性的,从根节点开始写的路径。这里我们的根节点是/html,我们从/html开始写一直写到某个具体的元素。一般来说绝对路径都是比较长的。
例如我们可以这样子:

elements = driver.find_elements_by_xpath("/html/body/div/")

上面的xpath是连贯起来的,具体确定性,所以他是绝对路径。

再一次以百度为例

image.png

上面的完整xpath是:

/html/body/div[1]/div[1]/div[5]/div/div/form/span[2]/input

相对路径

与绝对路径相对的,我们还有相对路径。相对路径并不是从根节点开始写的。一般开头就是一个双斜杠//。
例如:

//div//a

有的同学说,相对路径这么短?对,它就这短,所以他很有可能会匹配到很多个,所以我们需要注意了。看匹配出来的元素是否就是我们需要的,不然用的时候有可能会报错。

我们完整的匹配代码就是:

elements = driver.find_elements_by_xpath("//div//p")

这样子就可以匹配到一堆符合条件的了。

通配符

这里的通配符就是任意字符的意思,用*代替。

如果要选择所有div节点的所有直接子节点,可以使用表达式 //div/*

elements = driver.find_elements_by_xpath("//div/*")

上面的代码就可以匹配到全部div下面的全部子节点。

关于爬虫和自动化测试,有兴趣学的话,可以关注公众号:诗一样的代码,留言给我,我教你系统地学。

相关文章
|
2月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
3月前
|
数据采集 XML 数据格式
Python爬虫--xpath
Python爬虫--xpath
27 1
|
7月前
|
XML 数据采集 前端开发
四:《智慧的网络爬虫》— 数据解析之xpath解析
本篇文章主要讲述了数据解析中的xpath解析,及相对路径的定位语法。最后以爬取豆瓣top250首页作为示例总结
120 5
四:《智慧的网络爬虫》—  数据解析之xpath解析
|
8月前
|
数据采集 XML 数据格式
Python爬虫Xpath库详解#4
XPath详解,涉及获取所有节点,子节点,父节点,属性匹配,文本获取,属性获取,按序选择等。【2月更文挑战第13天】
88 0
|
XML 数据采集 Web App开发
XPath数据提取与贴吧爬虫应用示例
XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语言。它提供了一种简洁的方式来遍历和提取XML文档中的数据。
135 1
|
数据采集 XML 前端开发
Python爬虫:scrapy内置网页解析库parsel-通过css和xpath解析xml、html
Python爬虫:scrapy内置网页解析库parsel-通过css和xpath解析xml、html
220 0
|
数据采集 编译器 开发者
爬虫学习:XPath的使用
熟知XPath的使用来进行HTML信息锁定并获取
259 0
爬虫学习:XPath的使用
|
XML 数据采集 Web App开发
自动化测试/爬虫定位真难,那是你还没掌握XPath定位
自动化测试/爬虫定位真难,那是你还没掌握XPath定位
121 0
|
数据采集 XML 前端开发
python爬虫:scrapy框架xpath和css选择器语法
python爬虫:scrapy框架xpath和css选择器语法
241 0
python爬虫:scrapy框架xpath和css选择器语法
|
数据采集 大数据 索引
初识爬虫之Xpath语法篇
初识爬虫之Xpath语法篇
277 0
初识爬虫之Xpath语法篇