前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python神技能:六张表 搞定 Xpath 语法

Python神技能:六张表 搞定 Xpath 语法

作者头像
小小科
发布2018-06-20 11:57:19
5440
发布2018-06-20 11:57:19
举报
文章被收录于专栏:北京马哥教育北京马哥教育

作者:j_hao104

来源:见文末

一、选取节点

常用的路劲表达式:

表达式

描述

实例

nodename

选取nodename节点的所有子节点

xpath('//div')

选取了div节点的所有子节点

/

从根节点选取

xpath('/div')

从根节点上选取div节点

//

选取所有的当前节点,不考虑他们的位置

xpath('//div')

选取所有的div节点

.

选取当前节点

xpath('./div')

选取当前节点下的div节点

..

选取当前节点的父节点

xpath('..')

回到上一个节点

@

选取属性

xpath('//@calss')

选取所有的class属性

二、谓语

谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点

实例:

表达式

结果

xpath('/body/div[1]')

选取body下的第一个div节点

xpath('/body/div[last()]')

选取body下最后一个div节点

xpath('/body/div[last()-1]')

选取body下倒数第二个div节点

xpath('/body/div[positon()<3]')

选取body下前两个div节点

xpath('/body/div[@class]')

选取body下带有class属性的div节点

xpath('/body/div[@class="main"]')

选取body下class属性为main的div节点

xpath('/body/div[price>35.00]')

选取body下price元素值大于35的div节点

三、通配符

Xpath通过通配符来选取未知的XML元素

表达式

结果

xpath('/div/*')

选取div下的所有子节点

xpath('/div[@*]')

选取所有带属性的div节点

四、取多个路径

使用“|”运算符可以选取多个路径

表达式

结果

xpath('//div|//table')

选取所有的div和table节点

五、Xpath轴

轴可以定义相对于当前节点的节点集

轴名称

表达式

描述

ancestor

xpath('./ancestor::*')

选取当前节点的所有先辈节点(父、祖父)

ancestor-or-self

xpath('./ancestor-or-self::*')

选取当前节点的所有先辈节点以及节点本身

attribute

xpath('./attribute::*')

选取当前节点的所有属性

child

xpath('./child::*')

返回当前节点的所有子节点

descendant

xpath('./descendant::*')

返回当前节点的所有后代节点(子节点、孙节点)

following

xpath('./following::*')

选取文档中当前节点结束标签后的所有节点

following-sibing

xpath('./following-sibling::*')

选取当前节点之后的兄弟节点

parent

xpath('./parent::*')

选取当前节点的父节点

preceding

xpath('./preceding::*')

选取文档中当前节点开始标签前的所有节点

preceding-sibling

xpath('./preceding-sibling::*')

选取当前节点之前的兄弟节点

self

xpath('./self::*')

选取当前节点

六、功能函数

使用功能函数能够更好的进行模糊搜索

函数

用法

解释

starts-with

xpath('//div[starts-with(@id,"ma")]')

选取id值以ma开头的div节点

contains

xpath('//div[contains(@id,"ma")]')

选取id值包含ma的div节点

and

xpath('//div[contains(@id,"ma") and contains(@id,"in")]')

选取id值包含ma和in的div节点

text()

xpath('//div[contains(text(),"ma")]')

选取节点文本包含ma的div节点

scrapy xpath文档:http://doc.scrapy.org/en/0.14/topics/selectors.html

作者:j_hao104 来源:https://my.oschina.net/jhao104/blog/639448

《Python人工智能和全栈开发》2018年07月23日即将在北京开课,120天冲击Python年薪30万,改变速约~~~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:j_hao104
  • 一、选取节点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档