scrapy xpath

xpath学习笔记


选取节点

常用的路径表达式

表达式描述实例解释
nodename选取nodename节点的所有子节点xpath(‘//div’)选取了div节点的所有子节点
/从根节点选取xpath(‘/div’)从根节点上选取div节点
//选取所有的当前节点点,不考虑位置xpath(‘//div’)选取所有的div节点
.选取当前节点xpath(‘./div’)选取当前节点下的div节点
..选取当前节点的父节点path(‘..’)回到上一个节点
@选取属性xpat(‘//@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属性的节点
xpath(‘/body/div[@class=”main”]’)选取body下class属性为main的div节点
xpath(‘/body/div[price>100.00]’)选取body下price元素值大于100的div节点

通配符

通过通配符选取未知的xml元素

表达式结果
xpath(‘/div/*’)选取div下的所有子节点
xpath(‘/div[@*]’)选取所有带属性的div节点

取多个路径

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

表达式结果
xpath(‘//div//table’)

xpath轴:

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

轴名称表达式描述
ancestorxpath(‘./ancestor::’)选取当前节点的所有先辈节点(父、祖父)
ancestor-or-selfxpath(‘./ancestor-or-self::’)选取当前节点的所有先辈节点以及结点本身
attributexpath(‘./attribute::’)选取当前节点的所有属性
childxpath(‘./child::’)返回当前节点的所有子节点
descendantxpath(‘./descendant::’)返回当前节点的所有后代节点(子、孙)
followingxpath(‘./following::’)选取文档中当前节点结束标签后的所有节点
following-sibingxpath(‘./folloeing-sibing::’)选取当前节点之后的兄弟节点
parentxpath(‘./parent::’)选取当前节点的父节点
precedingxpath(‘./preceding::’)选取文档中所有当前节点开始标签前的所有节点

功能函数

函数用法解释
starts-withxpath(‘//div[starts-with(@id,”mai”)]’)选取ID值以mai开头的div节点
containsxpath(‘//div[contains(@id,”mai”)]’)选取id值包含mai的节点
andxpath(‘//div[contains(@id,”mai”) and contains(@id,”n”)]’)选取包含mai和n的节点
text()xpath(‘//div[contains(text(),”mai”)]’)选取节点文本包含mai的节点

要学的还有好多,最直接的方法当然是查文档了>scrapy xpath 文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值