爬虫大法之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
Python爬虫--xpath
|
6月前
|
XML 数据采集 前端开发
四:《智慧的网络爬虫》— 数据解析之xpath解析
本篇文章主要讲述了数据解析中的xpath解析,及相对路径的定位语法。最后以爬取豆瓣top250首页作为示例总结
101 5
四:《智慧的网络爬虫》—  数据解析之xpath解析
|
7月前
|
数据采集 XML 数据格式
Python爬虫Xpath库详解#4
XPath详解,涉及获取所有节点,子节点,父节点,属性匹配,文本获取,属性获取,按序选择等。【2月更文挑战第13天】
79 0
|
XML 数据采集 Web App开发
XPath数据提取与贴吧爬虫应用示例
XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语言。它提供了一种简洁的方式来遍历和提取XML文档中的数据。
123 1
|
数据采集 XML 前端开发
Python爬虫:scrapy内置网页解析库parsel-通过css和xpath解析xml、html
Python爬虫:scrapy内置网页解析库parsel-通过css和xpath解析xml、html
213 0
|
数据采集 编译器 开发者
爬虫学习:XPath的使用
熟知XPath的使用来进行HTML信息锁定并获取
250 0
爬虫学习:XPath的使用
|
XML 数据采集 Web App开发
自动化测试/爬虫定位真难,那是你还没掌握XPath定位
自动化测试/爬虫定位真难,那是你还没掌握XPath定位
115 0
|
数据采集 XML 前端开发
python爬虫:scrapy框架xpath和css选择器语法
python爬虫:scrapy框架xpath和css选择器语法
232 0
python爬虫:scrapy框架xpath和css选择器语法
|
数据采集 大数据 索引
初识爬虫之Xpath语法篇
初识爬虫之Xpath语法篇
272 0
初识爬虫之Xpath语法篇
|
Web App开发 数据采集 开发者
Python爬虫:chrome网页解析工具-XPath Helper
Python爬虫:chrome网页解析工具-XPath Helper
239 0