我在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,并且不希望对网站或我们造成问题。;)
答案 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, …}