2025年6月4日 星期三 乙巳(蛇)年 三月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

Python爬虫的xpath使用的技巧

时间:04-03来源:作者:点击数:56

XPath简述

XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。

XPath 开发工具

1.开源的XPath表达式编辑工具: XMLQuire(XML格式文件可用)

2.Chrome插件 XPath Helper

语法结构:如下:

  • # XPath 基础表达式:
  • /node         表示在xml文档的根目录查找结点名称为node的结点
  • ./node        表示在当前结点下查找结点名称为node的结点
  • //node        表示在xml文档中递归查找结点名称为node的节点
  • //*       表示在xml文档中查询所有的结点,但是排除文本节点
  • //node()          表示在xml文档中查询所有结点,包含文本节点
  • //text()          表示在xml文档中递归查找所有的文本节点
  • //*/text()[contains(., 'test')]       表示在xml文档中递归查找所有结点,条件为该结点的文本节点包含"test"
  • //node[@id]       表示在xml文档中递归查找结点名称为node的结点,条件为该结点必须含有id属性
  • //node[id]        表示在xml文档中递归查找结点名称为node的结点,条件为该结点必须含有结点名称为id的结点
  • //nodes[node/id]          表示递归查找nodes结点,条件为nodes结点下必须有node结点,且node结点下必须有id结点
  • //nodes[@id]/node[id]         表示递归查找含有id属性的nodes结点下的node结点,条件为node结点下必须含有id结点
  • //nodes[@id]/node[0]          表示递归查找含有id属性的nodes结点下的第一个node结点
  • //nodes[@id]/node[last()]         表示递归查找含有id属性的nodes结点下的最后一个node结点
  • //nodes/node[position() < 4]          表示递归查找nodes结点下索引小于4的node结点
  • //nodes[@id]/node[position() < last()]        递归查找含有id属性的nodes结点下除最后一个结点外的node结点
  • /nodes/child::node()[name()='node']       表示查找nodes结点下结点名称为node的子结点
  • /nodes/child::node        等同于/nodes/node表示查找nodes下的node子结点
  • /nodes/node/attribute::id         等同于/nodes/node/@id表示查找nodes结点下的node结点的id属性
  • //nodes[@id='1001']/node[starts-with(@id, '1')]       表示查找id属性为1001的nodes结点下的id属性以1开头的node结点
  • //@*[ends-with(., '1')]       表示查找以1结尾所有属性
  • (//* | //@*)[substring(name(), 1, 5) = 'class']       查找所有结点名称或属性名称的15之间的字符等于'class'的结点
  • //node[@attr!='-2' and @attr!='2']        查找所有node节点,其attr属性不等于2和-2
  • # XPath 文档轴用途: 
  • self                选择当前节点
  • parent              选择当前节点的父节点
  • child               选择当前节点的所有子节点
  • attribute           选择当前节点的所有属性
  • ancestor            选择当前节点的所有祖先,包括父节点、父节点的父节点等等
  • ancestor-or-self    选择当前节点的祖先以及当前节点本身
  • descendant          选择当前节点的所有后代,包括子节点、子节点的子节点等等
  • descendant-or-self  选择当前节点的后代以及当前节点本身
  • preceding           选择整个文档中出现在当前节点前面的所有节点
  • preceding-sibling   选择文档中出现在当前节点前面的所有同胞节点(即与当前节点同级的节点)
  • following           选择整个文档中出现在当前节点后面的所有节点
  • following-sibling   选择文档中出现在当前节点后面的所有同胞节点(即与当前节点同级的节点)
  • namespace           选择当前节点的所有名称空间节点

也可以使用浏览器来进行xpath的选择。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门