如何使用Scrapy的response.css获取类内元素的指定属性值
解决Scrapy获取input元素value属性的问题
嘿,我来帮你搞定这个Scrapy选择器的问题!你之前的写法不对,因为value是元素的属性,不是子元素,所以不能用>value这种方式来选。
要精准获取.lst这个input的value属性值,你需要用Scrapy CSS选择器里的::attr(属性名)语法,具体写法如下:
# 获取单个匹配结果(推荐,因为这个input应该是唯一的) response.css(".lst::attr(value)").get() # 或者如果你想获取所有匹配的结果(比如有多个相同class的input),用extract() response.css(".lst::attr(value)").extract()
另外,这个input还有唯一的ID sbhost,用ID选择器会更精准,避免匹配到其他相同class的元素:
response.css("#sbhost::attr(value)").get()
解释下你之前的问题:
response.css(".lst >value").extract():这个写法是在找.lst元素的子元素value,但实际上value是属性,不是子元素,所以这个写法根本匹配不到内容(你说能返回内容可能是记错啦?)response.css(".lst").extract():这个会返回整个input标签的HTML代码,所以会拿到所有属性和标签内容,不是你要的单个value值
这样就能准确拿到3474636382675这个值啦!
内容的提问来源于stack exchange,提问作者Rousblack
相关产品推荐
相关产品推荐

