如何用Scrapy提取最后一个<li>元素的文本内容?
解决CSS选择器提取最后一个
<li>返回空的问题 - 问题根源:
last-child、nth-child是针对父元素的所有子元素进行匹配,若<ul>中除了<li>还有其他隐藏元素(比如注释、文本节点、非<li>标签),最后一个子元素可能不是目标<li>,导致选择器匹配失败。 - 替代方案:使用
last-of-type选择器,它专门匹配父元素中同类型标签的最后一个实例,不受其他子元素干扰:foo.css("ul.SearchResultCard__footerList > li:last-of-type > span::text").get() - 额外验证方法:如果不确定
<ul>内的子元素结构,可以先打印所有子元素确认:
这样能直观看到是否有非for child in foo.css("ul.SearchResultCard__footerList > *"): print(child.get())<li>的子元素干扰了last-child的匹配。
内容的提问来源于stack exchange,提问作者astrochicken
相关产品推荐
相关产品推荐

