CSS选择器 first-child 和 first-of-type 区别

本文讲述了在网页解析中如何正确使用CSS选择器提取特定元素。通过实例展示了first-child和first-of-type的区别,前者选取父节点的第一个子节点,后者选取父节点下指定类型的第一个子节点。在提取总页数时,由于误用了first-child,导致无法获取到正确的数字,修正为first-of-type后成功提取出68这个总页数。
摘要由CSDN通过智能技术生成

先来看一下需求:

目标是提取出 68 这个总页数,我一开始用的是 first-child

response.css("#toPage li:first-child::text").re_first(r"\d+")

但是提取出来的是 None, 想了一下发现不对,form#toPage 的第一个子节点应该是 input,所以这里应该用的是 first-of-type 才对

response.css("#toPage li:first-of-type::text").re_first(r"\d+")

总结一下,就是 

first-child :提取父节点的第一个子节点

first-of-type :提取父节点下该种类型的子节点的第一个

2021.11.25 更新:

        节点不可以带属性值 class id 之类的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值