选项卡和xpath学习总结
一、selenium选项卡
浏览器对象.window_handles -获取当前浏览器中所有的窗口对象,返回一个列表
切换选项卡:浏览器对象.switch_to .window(窗口对象)
xpath数据解析
import lxml
二、xpath
-
lxml第三方库
既可以解析xml内容也可以解析html内容
xpath相关术语:
- 树 —— 整个网页或者xml文件对应的结构
- 节点 —— 标签、元素
- 根节点 —— 最外面的标签
- 绝对路径 —— 从根节点开始的路径
- 相对路径 —— 用 “ . ” 表示当前路径
- 节点内容 —— 双标签的标签内容
- 属性 —— 标签属性
-
xml数据结构
xml数据个json数据格式相同,是一种通用的数据格式
-
xpath语法
-
创建树并且获取根节点
etree.XML(xml数据) #创建xml树结构并且返回根节点 etree.HTML(html数据) #创建html树结构并且返回根节点
-
通过路径获取标签:节点对象.xpath(路径)—— 返回值是列表,列表中的元素是通过指定路径找到的所有标签对应的节点对象
-
绝对路径:/ 绝对路径
result = root.xpath('/1/2/3/4/text()')
绝对路径一定是从根节点开始写,和xpath前面是哪个节点无关
-
相对路径:// 相对路径
用 “ . ” 表示当前节点 —— xpath前面是哪个节点,当前节点就是谁
result = 1.xpath('./2/3/4/text()')
用 ”. .“ 表示当前节点的父节点
result = 2.xpath('../2/3/4/text()')
-
获取标签内容:获取标签的路径/text()
-
获取标签属性值:获取标签的路径/@属性名
-
谓语 —— 条件
位置相关的条件:
标签名[N] — 第N个指定标签 标签名[last()] — 最后一个指定标签 标签名[last()-N] — 倒数第(N+1)个指定标签 标签名[last()<N] — 获取所有位置值(从1开始)小于N的指定标签 标签名[last()>N] — 获取所有位置值(从N开始)大于N的指定标签 标签名[last()<=N] — 获取所有位置值(从1开始)小于等于N的指定标签 标签名[last()=>N] — 获取所有位置值(从N开始)大于等于N的指定标签
和属性相关的条件
标签名[@属性名] —— 获取拥有指定属性的指定标签 标签名[@属性名=值] —— 获取指定属性为指定值的指定标签
和标签内容相关的条件
标签对象[子标签名>数据] —— 通过标签中的子标签的内容来对标签进行筛选 标签对象[子标签名=>数据] 标签对象[子标签名<数据] 标签对象[子标签名<=数据] 标签对象[子标签名=数据
-
通配符 — *
用 * 代替任何标签或者任何属性
-
-