我正在编写一个抓取方式处理表单的网络爬虫。问题是我遇到了一个表单,其中包含很多同名输入。标签如下:
<input type="text" name="CRN_IN" size="6" maxlength="5" ID="crn_id1" />
<input type="text" name="CRN_IN" size="6" maxlength="5" ID="crn_id2" />
<input type="text" name="CRN_IN" size="6" maxlength="5" ID="crn_id3" />
唯一可以区分它们的是ID属性。我想用一些数字填充whoes ID ='crn_id1'。但是据我所知,scrapy只能使用from_response方法中的formdata用name属性填充空白。 谁能告诉我如何使用from_response方法来解决我的问题。还是有其他方法可以解决(但是很麻烦)。非常感谢。
这是网站html代码的一部分。 Input with same names
答案 0 :(得分:2)
from_response
方法只是用来填充您要请求的指定格式的输入参数的助手,但它仍然是FormRequest
处的一种,您可以始终覆盖formdata
参数发送自己的输入参数:
yield FormRequest.from_response(
response=response,
formdata={
myinput='myvalue',
}
)