具有多个蜘蛛的 Scrapy 项目 - 忽略自定义设置 [英] Scrapy Project with Multiple Spiders - Custom Settings Ignored

查看:31
本文介绍了具有多个蜘蛛的 Scrapy 项目 - 忽略自定义设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

场景:

  • 具有多个蜘蛛的单个 scrapy 项目.
  • 为每个蜘蛛定义的自定义设置.

问题:

  • 在执行(即scrapy crawl ...)时,正在执行的蜘蛛的自定义设置将被同一项目中另一个蜘蛛的自定义设置覆盖.

spider01.py

class FirstXmlSpider(XMLFeedSpider):

# Spider Name
name = 'spider01'

# Initialise Settings
now = datetime.datetime.now()
settings.set('LOG_FILE', './logs/' + name + '_' + now.strftime("%Y%m%d_%H%M%S") + '.txt')

spider02.py

class SecondXmlSpider(XMLFeedSpider):

# Spider Name
name = 'spider02'

# Initialise Settings
now = datetime.datetime.now()
settings.set('LOG_FILE', './logs/' + name + '_' + now.strftime("%Y%m%d_%H%M%S") + '.txt')

重现步骤

  1. 执行scrapy crawl spider01
  2. 检查日志目录(希望看到以spider01_为前缀的日志文件)
  3. 查看内容正确但文件名错误的日志文件 (spider02_).

有什么想法吗?我过去使用多个蜘蛛设置了scrapy项目,没有问题.不知道为什么我现在遇到问题?

Any ideas? I've setup scrapy projects in the past with multiple spiders without problem. Not sure why I am getting issues now?

推荐答案

自从 Scrapy 1.0,您可以为蜘蛛添加自定义设置,而无需更改项目的全局设置.只需在蜘蛛中添加一个名为 custom_settings 的属性即可.

Since Scrapy 1.0, you can add custom settings for spiders with no need to change project's global settings. Just add an attribute called custom_settings into your spiders.

查看文档:http:///doc.scrapy.org/en/latest/topics/settings.html#settings-per-spider

这篇关于具有多个蜘蛛的 Scrapy 项目 - 忽略自定义设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆