当前位置 博文首页 > wang785994599的博客:scrapy技巧
最近写scrapy的时候,有些链接会自动重定向,就导致了不同的错误都重定向到了一个相同的页面,导致无法根据响应内容做对应的处理,查了文档,关闭重定向的方式为:
REDIRECT_ENABLED = False
但是经过实际测试,该重定向只能针对响应状态为302,301的重定向进行处理,无法处理通过元数据进行重定向的页面,类似于:
<meta http-equiv="refresh" content="6;URL=https://weibo.cn/pub/" />
REDIRECT_ENABLED? 对这类重定向做不出任何反应。
后来继续查阅文档,发现有个默认启用的下载中间件:
scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware
将此中间件关闭即可,完整的配置为:
REDIRECT_ENABLED = False
DOWNLOADER_MIDDLEWARES = {
...
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': None,
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware':None
}
如何在scrpay-redis爬虫运行时指定指定redis_key?
def __init__(self, redis_key=None, *args, **kwargs):
super(SinglecralwSpider, self).__init__(*args, **kwargs)
self.redis_key = redis_key
启动时用一下命令传参
scrapy crawl ReMobile -a redis_key=my_test
?
cs