1 输出json文件中显示中文
settings.py中增加 FEED_EXPORT_ENCODING = 'utf-8'
2 Request请求时传递变量
可这meta参数中进行传递
def parse(self, response):
# ...
item = {
'name': 'zoro'
}
yield scrapy.Request(url, callback=self.another_parse, meta={'item': item})
def another_parse(self, response):
item = response.meta['item']
item.update({'age': 18})
yield item
3 手动中止爬虫
# 在Spider文件中
self.crawler.engine.close_spider(self, 错误信息)
# 在middlewares文件中
spider.crawler.engine.close_spider(spider, 错误信息)
4 添加重试条件
默认重试代码为:RETRY_HTTP_CODES = [500, 502, 503, 504, 522, 524, 408]
如果想添加额外的重试条件,只需在settings.py
中修改RETRY_HTTP_CODES
即可
如增加429来处理Too Many Requests问题
RETRY_HTTP_CODES = [500, 502, 503, 504, 522, 524, 408, 429]