如何使用FormRequest发布具有多个相同名称输入的表单?

时间:2018-11-25 23:42:56

标签: python scrapy

我正在编写一个抓取方式处理表单的网络爬虫。问题是我遇到了一个表单,其中包含很多同名输入。标签如下:

<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

1 个答案:

答案 0 :(得分:2)

from_response方法只是用来填充您要请求的指定格式的输入参数的助手,但它仍然是FormRequest处的一种,您可以始终覆盖formdata参数发送自己的输入参数:

yield FormRequest.from_response(
    response=response,
    formdata={
        myinput='myvalue',
    }
)