如何使用Scrapy的CSS选择器提取带指定多类名的a标签的href属性
解决方案
错误根因
你使用的CSS选择器中两个类名之间存在空格,CSS语法中空格代表后代选择器,会被解析为查找a.AirQuality--detailsButton--DBdLS节点下名为Button--primary--1UQTP的子标签,完全不符合你的匹配需求,因此返回空结果。
正确匹配代码
同时匹配多个类名的正确写法是所有类名前加.且中间无空格:
response.css('a.AirQuality--detailsButton--DBdLS.Button--primary--1UQTP::attr(href)').get()
高容错性可选写法
如果担心页面后续更新类名后缀变动,也可以用属性包含匹配的写法,只匹配固定前缀的类名即可:
response.css('a[class*="AirQuality--detailsButton"]::attr(href)').get()
内容的提问来源于stack exchange,提问作者beta green
相关产品推荐
相关产品推荐

