如何确保我的“蜘蛛”使用我的“ settings.py”配置?

时间:2019-04-25 15:58:20

标签: python beautifulsoup scrapy

我在settings.py中启用了一些选项 自动油门 下载延迟 启动延迟 最大延迟

但是当我运行Spider时,它的运行速度似乎仍与打开所有这些选项之前一样快。

我怎么知道我的蜘蛛实际上正在读取/使用该settings.py配置。

我尝试过的唯一事情是使用没有打开任何内容的蜘蛛运行我的URL列表,并使用打开了所有蜘蛛的蜘蛛相同的列表,并且它们都运行相同的时间。快..所以我不想从该域中被列入黑名单。.我希望以慢速击中服务器以免产生问题。

这是我在settings.py中启用的选项。

AUTOTHROTTLE_ENABLED = True
# The initial download delay
AUTOTHROTTLE_START_DELAY = 5
# The maximum download delay to be set in case of high latencies
AUTOTHROTTLE_MAX_DELAY = 20
# The average number of requests Scrapy should be sending in parallel to
# each remote server
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
DOWNLOAD_DELAY = 5
# Obey robots.txt rules
ROBOTSTXT_OBEY = True

我是否必须将设置导入蜘蛛本身?要读取该文件,我必须在蜘蛛代码中做任何事情吗?

我希望能够对2600多个网址运行Spider,并且不希望对网站或我们造成问题。;)

2 个答案:

答案 0 :(得分:0)

您可以像这样检查正在使用的设置。并为每个蜘蛛添加自定义设置,如下所示。

class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['http://example.com']

    custom_settings = {
        'SOME_SETTING': 'some value',
    }

    def parse(self, response):
        print("Existing settings: %s" % self.settings.attributes.keys())

有关设置和蜘蛛网的更多详细信息,请参见here

答案 1 :(得分:0)

您可以在日志中查看正在使用的设置:

2019-04-30 12:20:20 [scrapy.crawler] INFO: Overridden settings: {'AUTOTHROTTLE_ENABLED': True, …}
相关问题