1 输出json文件中显示中文

settings.py中增加 FEED_EXPORT_ENCODING = 'utf-8'

2 Request请求时传递变量

可这meta参数中进行传递

  1. def parse(self, response):
  2. # ...
  3. item = {
  4. 'name': 'zoro'
  5. }
  6. yield scrapy.Request(url, callback=self.another_parse, meta={'item': item})
  7. def another_parse(self, response):
  8. item = response.meta['item']
  9. item.update({'age': 18})
  10. yield item

3 手动中止爬虫

  1. # 在Spider文件中
  2. self.crawler.engine.close_spider(self, 错误信息)
  3. # 在middlewares文件中
  4. 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问题

  1. RETRY_HTTP_CODES = [500, 502, 503, 504, 522, 524, 408, 429]