Scrapy Shell中response.css获取元素返回[]的原因咨询
问题原因与解决方法
你的CSS选择器语法错误,导致无法匹配到目标元素:
- 当定位同一个元素的多个类名时,类名之间必须用
.连接;而你用空格分隔的写法,在CSS选择器中代表“后代元素”关系,相当于查找h1.headline下的mb-3元素,再找该元素下的fw-bolder元素,完全不符合目标结构。
正确的写法
- 完整匹配所有类名:
response.css('h1.headline.mb-3.fw-bolder').getall()
- 简化匹配(若
headline类在页面中唯一,无需多余类名):
response.css('h1.headline').getall()
提取标题文本的优化写法
如果只需要标题文本,可结合::text伪元素和get()(页面通常只有一个h1标题):
response.css('h1.headline.mb-3.fw-bolder::text').get()
内容的提问来源于stack exchange,提问作者Mr.Slow
相关产品推荐
相关产品推荐

