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

时间:2014-07-21 04:02:40

标签: scrapy

我正在尝试使用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年等。

搜索查询通过一个大型发送,向服务器发出POST请求方法。

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

1 个答案:

答案 0 :(得分:0)

我已经知道了答案。

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

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
)

这为我做了所有的伎俩。