停止覆盖 scrapy settings.py
stop overriding scrapy settings.py
我正在使用子进程来 运行 几个并行的 scrapy 蜘蛛,如下所示:
processes = [Popen(['scrapy', 'crawl', 'myspider', '-a', 'custom_argument={}'.format(argument)]) \
for argument in custom_arguments]
while processes:
for p in processes[:]:
if p.poll() is not None:
processes.remove(p)
要通过子进程向每个蜘蛛输入自定义参数,我的蜘蛛是这样启动的:
class myspider(scrapy.Spider):
name = 'myspider'
def __init__(self, custom_argument=None, *args, **kwargs):
super(myspider, self).__init__(*args, **kwargs)
...
def start_requests(self):
...
这似乎工作正常,除了我在 settings.py
中选择的设置被覆盖:
2021-01-06 16:57:16 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': 'True', 'AUTOTHROTTLE_START_DELAY': '0.5', 'BOT_NAME': 'openrent', 'COOKIES_ENABLED': False, 'NEWSPIDER_MODULE': 'openrent.spiders', 'SPIDER_MODULES': ['openrent.spiders'], 'USER_AGENT': 'Safari/537.36'}
如何阻止原始设置像这样被覆盖?
这不是错误
此日志行表示来自 scrapy default settings 的设置被替换为
在项目的 settings.py
文件中定义的设置。
setting name
scrapy default settings value
your settings.py
value
AUTOTHROTTLE_ENABLED
False
True
AUTOTHROTTLE_START_DELAY
5.0
0.5
BOT_NAME
scrapybot
openrent
COOKIES_ENABLED
True
False
NEWSPIDER_MODULE
``
openrent.spiders
SPIDER_MODULES
[]
['openrent.spiders']
USER_AGENT
Scrapy/2.4 (+https://scrapy.org)
Safari/537.36
没有 NEWSPIDER_MODULE
和 SPIDER_MODULES
在你的 settings.py
中定义的设置,scrapy 将无法读取你的蜘蛛 class.
我正在使用子进程来 运行 几个并行的 scrapy 蜘蛛,如下所示:
processes = [Popen(['scrapy', 'crawl', 'myspider', '-a', 'custom_argument={}'.format(argument)]) \
for argument in custom_arguments]
while processes:
for p in processes[:]:
if p.poll() is not None:
processes.remove(p)
要通过子进程向每个蜘蛛输入自定义参数,我的蜘蛛是这样启动的:
class myspider(scrapy.Spider):
name = 'myspider'
def __init__(self, custom_argument=None, *args, **kwargs):
super(myspider, self).__init__(*args, **kwargs)
...
def start_requests(self):
...
这似乎工作正常,除了我在 settings.py
中选择的设置被覆盖:
2021-01-06 16:57:16 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': 'True', 'AUTOTHROTTLE_START_DELAY': '0.5', 'BOT_NAME': 'openrent', 'COOKIES_ENABLED': False, 'NEWSPIDER_MODULE': 'openrent.spiders', 'SPIDER_MODULES': ['openrent.spiders'], 'USER_AGENT': 'Safari/537.36'}
如何阻止原始设置像这样被覆盖?
这不是错误
此日志行表示来自 scrapy default settings 的设置被替换为
在项目的 settings.py
文件中定义的设置。
setting name | scrapy default settings value | your settings.py value |
---|---|---|
AUTOTHROTTLE_ENABLED |
False |
True |
AUTOTHROTTLE_START_DELAY |
5.0 |
0.5 |
BOT_NAME |
scrapybot |
openrent |
COOKIES_ENABLED |
True |
False |
NEWSPIDER_MODULE |
`` | openrent.spiders |
SPIDER_MODULES |
[] |
['openrent.spiders'] |
USER_AGENT |
Scrapy/2.4 (+https://scrapy.org) |
Safari/537.36 |
没有 NEWSPIDER_MODULE
和 SPIDER_MODULES
在你的 settings.py
中定义的设置,scrapy 将无法读取你的蜘蛛 class.