处理使用scrapy逐个重定向

时间:2014-01-11 16:01:15

标签: redirect python-2.7 scrapy http-post

我写过一个有start_url的蜘蛛。我的蜘蛛的parse方法会丢弃一些数据并返回FormRequests的列表。

问题来自该帖子请求的响应。它会将我重定向到另一个网站,其中包含一些不相关的GET参数。似乎唯一重要的参数是在标题中张贴的SESSION_ID。不幸的是,Scrapys的行为是一个接一个地执行我的请求,并在队列末尾对重定向响应进行排队。如果所有返回的FormRequests都已执行,则scrapy开始执行所有重定向,这些重定向都返回同一站点。

如何绕过这种行为,以便执行FormRequest,并且对于任何新的FormRequest执行请求响应中返回的重定向?也许有另一种方式,比如强迫网站以某种方式为每个FormRequest获取一个新的SESSION_ID cookie。我愿意接受任何可能解决问题的想法。

1 个答案:

答案 0 :(得分:0)

我找到了自己的解决方案。我没有构建请求列表并立即返回它们,而是构建了一系列请求并在请求meta_data中传递了下一个请求。

在回调中,我传递下一个请求,将解析后的项目存储在一个蜘蛛成员中,或者如果没有下一个要执行的请求,则传递已解析的项目列表。

相关问题