阅读 358
xpath的主要用法(selenium,python)

xpath的主要用法(selenium,python)

这是我参与更文挑战的第1天,活动详情查看:更文挑战

python爬虫或者自动化时xpath的应用
不管是在进行爬虫或者浏览器自动化时我们首先要进行元素的获取,而xpath则是一种非常高效的手段

首先来进行xpath的概念说明: xpath是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。简单的意思就是说xpath是从一段xml文档中根据节点属性来查找具体的元素。 而html和xml 都是标记语言,都是基于文本编辑和修改的。所以xpath也可用于在html语言中获取信息

xpath主要语法
  1. 一个正斜杠(/)和两个正斜杠(//)

    在获取元素时一个斜杠'/'代表了从整个文档的根节点开始

    比如/html/body/div/ul/li[1] 这个【1】相当于从数组中元素的下标

  2. 两个斜杠代表了从文档中匹配到的当前节点开始

    比如"//div[@class = 'table-con']/ul/li[3]/input"而不用从根节点html开始

  3. '@'表达式代表选取属性 比如href class id 等

实例: 下图是我在项目中的xpath获取 获取一个inPut输入框的节点进行操作 首先找到他的父节点 看是否唯一如果唯一直接使用相对路径//进行开始 在控制台进行xpath语法的验证

graph TD
Start --> Stop

Snipaste_2021-06-18_10-15-21.png

xpath几个常用的函数
  1. contains (): //div[contains(@id,'in')] ,表示选择id中包含有’in’的div节点
  2. text():由于一个节点的文本值不属于属性,比如'baidu',所以,用text()函数来匹配节点://a[text()='baidu']。如果不完全匹配可以使用contains//a[contains(text(),'百度')]
  3. starts-with(): //div[starts-with(@id,'in')] ,表示选择以’in’开头的id属性的div节点
  4. not()函数,表示否定,//input[@name=‘identity’ and not(contains(@class,‘a’))] ,表示匹配出name为identity并且class的值中不包含a的input节点。写法如下://input[@id],如果我们要匹配出input节点不含用id属性的,则为://input[not(@id)]

xpath 轴目前未使用到 以后若有使用再来进行补全

文章分类
前端
文章标签