先来看一下需求:
目标是提取出 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 之类的