我是Scrapy的新手,正在尝试创建一个CSS选择器,该选择器通过id的一部分查找元素,并拆分其value
属性以获取第n个项目。到目前为止,我一直在使用简单的选择器,例如:
item['url'] = response.url # get url
item['address'] = response.css('span.address::text').get().strip() # get address
但是,现在我要选择此元素(所有ID以开头的元素mger
)并在其value
属性中拆分值:
<input type="hidden" id="mger21110564343" name="mger21110564343" value="21110564343~1~50.37396877,5.90523487~2222GH">
我一直在研究此页面:https : //docs.scrapy.org/en/latest/topics/selectors.html#id1和Google,但仍不确定如何做到这一点。
通常,我会使用常规CSS选择器[id^=mger]
。
我想要的伪代码,21110564343
从value
属性中获取价值:
response.css("[id^=mger]").attr('value').get().split("~")(0)
您的CSS应该可以工作,但选择器应如下所示:
selector.css('[id^=mger]::attr(value)').get()
使用scrapy时,您也可以使用xpath
(实际上,css选择器会转换为xpath),因此您还可以使用:
response.xpath('//*[starts-with(@id, "mger")]/@value').get()
如果您没有获得信息,则可能意味着响应主体中实际上并不存在这些元素,您必须首先确认
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句