将重定向存储在Scrapy项目中

时间:2012-09-19 21:53:03

标签: python redirect scrapy

我想在我的scrapy items.py文件中包含一个响应字段,如下所示:

class ScrapyItem(Item):
    title = Field()
    h1 = Field()
    response = Field()

我以为我可以在response.status文件中使用spider.py,但每次都会给我一个200状态代码。如果页面被重定向或找不到,我希望用301302404填写。

在Scrapy中有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

Scrapy吞噬了那种东西(这是一种设计决定)。你需要做两件事:

  1. 在您的蜘蛛中,将以下内容写入handle error responses

    handle_httpstatus_list = range( 400, 427 ) + range( 500, 511 )

  2. 禁用处理3xx状态标题的RedirectMiddleware

  3. 现在,您可以从response.status字段中读取状态。