如何更改所选的<;选择>;在scrapy中标记元素?

如何更改所选的<;选择>;在scrapy中标记元素?,scrapy,Scrapy,我正在尝试使用Scrapy对网站进行爬网 我需要在我的目标站点上查询一个板状函数的所有现有项的列表 问题是它只在目标年内搜索,并使用HTML标记选项指定 因此,我需要找到一种方法来更改s中的位置“selected”属性 我想我并不是真的在描述我的问题,所以我将附加一个简化的网站HTML代码: <select name="Search_FIS_YEAR" id="Search_FIS_YEAR" title="fiscal_year"> <option value="20

我正在尝试使用Scrapy对网站进行爬网

我需要在我的目标站点上查询一个板状函数的所有现有项的列表

问题是它只在目标年内搜索,并使用HTML标记选项指定

因此,我需要找到一种方法来更改s中的位置“selected”属性

我想我并不是真的在描述我的问题,所以我将附加一个简化的网站HTML代码:

<select name="Search_FIS_YEAR" id="Search_FIS_YEAR" title="fiscal_year">
    <option value="2014" selected>2014</option>
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    ...
    <option value="2007">2011</option>
</select>

2014
2013
2012
...
2011
因此,我的目标网站的默认值是2014年,但我想通过编程将其值更改为2013年、2012年等

搜索查询通过向服务器发送POST请求方法的大型数据库发送


幸运的是,我找到了一种使用FormRequest.from_response发送查询的方法,但我并没有真正成功地修改代码的上述部分。

我已经知道了答案

我所做的只是更改表单数据中选项的值:

yield FormRequest.from_response(
    response,
    formname=NAME_OF_FORM_WRAPPING_SELECT_HTML_ELEMENT
    formdata={
        'Search_FIS_YEAR': '2013', # or any other year value
    }
    callback=self.other_parse_function
)

这为我提供了所有的窍门。

我想到的混乱方式是解析响应文本。我很确定这不是我想要的方式