设置
Scrapy设置允许您自定义所有Scrapy组件的行为,包括核心,扩展,管道和蜘蛛本身。
设置的基础设施提供了代码可用于从中提取配置值的键值映射的全局命名空间。 可以通过不同的机制填充设置,如下所述。
这些设置也是选择当前活动的Scrapy项目(如果您有很多)的机制。
有关可用内置设置的列表,请参阅:内置设置参考。
指定设置
当您使用Scrapy时,您必须告诉您使用哪些设置。 您可以通过使用环境变量SCRAPY_SETTINGS_MODULE来执行此操作。
SCRAPY_SETTINGS_MODULE的值应该是Python路径语法,例如myproject.settings。 请注意,设置模块应该在Python导入搜索路径上。
填充设置
可以使用不同的机制来填充设置,每种机制具有不同的优先级。这是它们的优先顺序的列表:
命令行选项(最优先)
设置每蜘蛛
项目设置模块
每个命令的默认设置
默认全局设置(低优先级)
这些设置源的内容在内部进行了处理,但是可以使用API调用进行手动处理。请参阅设置API主题以供参考。
这些机制在下面更详细地描述。
1. 命令行选项
命令行提供的参数是最优先的参数,覆盖任何其他选项。您可以使用-s(或--set)命令行选项显式覆盖一个(或多个)设置。
例:
scrapy crawl myspider -s LOG\_FILE = scrapy.log
2.每个蜘蛛的设置
Spiders(参见Spiders章节以供参考)可以定义自己的优先级设置,并覆盖项目的设置。他们可以通过设置其custom_settings属性来实现:
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'SOME_SETTING': 'some value',
}
3.项目设置模块
项目设置模块是Scrapy项目的标准配置文件,大多数自定义设置将被填充。对于标准的Scrapy项目,这意味着您将添加或更改为您的项目创建的settings.py文件中的设置。
4.每个命令的默认设置
每个Scrapy工具命令都可以有自己的默认设置,覆盖全局默认设置。这些自定义命令设置在命令类的default_settings属性中指定。
5.默认全局设置
全局默认值位于scrapy.settings.default_settings模块中,并在“内置设置”参考部分中进行了说明。
如何访问设置
在蜘蛛中,可以通过self.settings进行设置:
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
注意
在蜘蛛初始化之后,设置属性在基础Spider类中设置。如果要在初始化之前使用设置(例如,在spider的__init __()方法中),则需要覆盖from_crawler()方法。
可以通过扩展,中间件和项目管道中传递给from_crawler方法的Crawler的scrapy.crawler.Crawler.settings属性来访问设置:
class MyExtension(object):
def __init__(self, log_is_enabled=False):
if log_is_enabled:
print("log is enabled!")
@classmethod
def from_crawler(cls, crawler):
settings = crawler.settings
return cls(settings.getbool('LOG_ENABLED'))
设置对象可以像dict一样使用(例如,设置['LOG_ENABLED']),但通常情况下,您可以使用设置API提供的方法之一,以您需要的格式提取设置以避免类型错误。
设置名称的理由
设置名称通常以其配置的组件为前缀。例如,虚构的robots.txt扩展名的适当设置名称为ROBOTSTXT_ENABLED,ROBOTSTXT_OBEY,ROBOTSTXT_CACHEDIR等。
内置设置参考
以下是所有可用Scrapy设置的列表,按字母顺序排列,以及默认值及其应用范围。
如果可用的范围显示了使用设置的位置,如果它与任何特定的组件相关联。在这种情况下,将显示该组件的模块,通常是扩展,中间件或管道。这也意味着必须启用组件才能使设置有任何效果。
AWS_ACCESS_KEY_ID
默认值:无
由访问Amazon Web服务的代码使用的AWS访问密钥,例如S3 Feed存储后端。
AWS_SECRET_ACCESS_KEY
默认值:无
AWS密钥由需要访问Amazon Web服务的代码(例如S3 Feed存储后端)使用。
BOT_NAME
默认值:'scrapybot'
该Scrapy项目实施的机器人名称(也称为项目名称)。这将用于默认构造User-Agent,也用于记录。
当您使用startproject命令创建项目时,它将自动填充您的项目名称。
CONCURRENT_ITEMS
默认值:100
在Item Processor(也称为Item Pipeline)中并行处理的最大并发项数(每个响应)。
CONCURRENT_REQUESTS
默认值:16
Scrapy下载程序将执行的并发(即同时)请求的最大数量。
CONCURRENT_REQUESTS_PER_DOMAIN
默认值:8
将执行到任何单个域的并发(即同时)请求的最大数量。
另请参见:AutoThrottle扩展及其AUTOTHROTTLE_TARGET_CONCURRENCY选项。
CONCURRENT_REQUESTS_PER_IP
默认值:0
将执行到任何单个IP的并发(即同时)请求的最大数量。如果非零,则CONCURRENT_REQUESTS_PER_DOMAIN设置将被忽略,而使用该设置。换句话说,并发限制将适用于每个IP,而不是每个域。
此设置也会影响DOWNLOAD_DELAY和AutoThrottle扩展名:如果CONCURRENT_REQUESTS_PER_IP不为零,则每个IP而不是每个域执行下载延迟。
DEFAULT_ITEM_CLASS
默认值:'scrapy.item.Item'
将用于在Scrapy shell中实例化项目的默认类。
DEFAULT_REQUEST_HEADERS
默认:
{
'Accept':'text / html,application / xhtml + xml,application / xml; q = 0.9,\* / \*; q = 0.8'
'接受语言':'en',
}
用于Scrapy HTTP请求的默认标头。它们填充在DefaultHeadersMiddleware中。
DEPTH_LIMIT
默认值:0
范围:scrapy.spidermiddlewares.depth.DepthMiddleware
允许任何站点爬网的最大深度。如果为零,则不受限制。
DEPTH_PRIORITY
默认值:0
范围:scrapy.spidermiddlewares.depth.DepthMiddleware
用于根据其深度调整请求优先级的整数:
如果为零(默认),则不会从深度进行优先级调整
正值将降低优先级,即稍后将处理更高的深度请求;这是广泛使用的第一次抓取(BFO)
负值将增加优先级,即更高深度请求将被更早处理(DFO)
另请参阅:Scrapy是否以广度优先或深度优先顺序爬行?关于调整BFO或DFO的Scrapy。
注意
与其他优先级设置REDIRECT_PRIORITY_ADJUST和RETRY_PRIORITY_ADJUST相比,此设置以相反的方式调整优先级。
DEPTH_STATS
默认值:True
范围:scrapy.spidermiddlewares.depth.DepthMiddleware
是否收集最大深度统计资料。
DEPTH_STATS_VERBOSE
默认值:False
范围:scrapy.spidermiddlewares.depth.DepthMiddleware
是否收集详细的深度统计资料。如果启用此功能,则会在统计信息中收集每个深度的请求数。
DNSCACHE_ENABLED
默认值:True
是否启用DNS内存中缓存。
DNSCACHE_SIZE
默认值:10000
DNS内存缓存大小。
DNS_TIMEOUT
默认值:60
超时处理DNS查询在几秒钟内。浮动被支持。
DOWNLOADER
默认值:'scrapy.core.downloader.Downloader'
下载器用于抓取。
DOWNLOADER_HTTPCLIENTFACTORY
默认值:'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'
定义用于HTTP / 1.0连接的Twisted protocol.ClientFactory类(对于HTTP10DownloadHandler)。
注意
HTTP / 1.0现在很少使用,所以你可以安全地忽略这个设置,除非你使用Twisted <11.1,或者你真的想使用HTTP / 1.0并且相应地覆盖DOWNLOAD_HANDLERS_BASE以用于http(s)方案,即'scrapy.core'。 downloader.handlers.http.HTTP10DownloadHandler”。
DOWNLOADER_CLIENTCONTEXTFACTORY
默认值:'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'
表示要使用的ContextFactory的类路径。
这里,“ContextFactory”是SSL / TLS上下文的Twisted术语,定义要使用的TLS / SSL协议版本,是否进行证书验证,甚至启用客户端验证(以及其他各种功能)。
注意
Scrapy默认上下文工厂不执行远程服务器证书验证。这通常适用于网络刮擦。
如果您确实启用了远程服务器证书验证,Scrapy还可以设置另一个上下文工厂类,“scrapy.core.downloader.contextfactory.BrowserLikeContextFactory”使用该平台的证书验证远程端点。仅当您使用Twisted = = 14.0时才可用。
如果您使用自定义的ContextFactory,请确保它在init处接受一个方法参数(这是OpenSSL.SSL方法映射DOWNLOADER_CLIENT_TLS_METHOD)。
DOWNLOADER_CLIENT_TLS_METHOD
默认值:'TLS'
使用此设置自定义默认HTTP / 1.1下载器使用的TLS / SSL方法。
此设置必须是以下字符串值之一:
'TLS':映射到OpenSSL的TLS_method()(a.k.a SSLv23_method()),它允许协议协商,从平台支持的最高级开始;默认,推荐
'TLSv1.0':此值强制HTTPS连接使用TLS版本1.0;如果您想要Scrapy <1.1的行为,请设置此项
'TLSv1.1':强制TLS版本1.1
'TLSv1.2':强制TLS版本1.2
'SSLv3':强制SSL版本3(不推荐)
注意
我们建议您使用PyOpenSSL> = 0.13和Twisted> = 0.13或以上(Twisted = = 14.0,如果可以)。
DOWNLOADER_MIDDLEWARES
Default :: {}
包含您的项目中启用的下载器中间件的命令及其命令。有关更多信息,请参阅激活下载器中间件。
DOWNLOADER_MIDDLEWARES_BASE
默认:
{
'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware':100,
'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware':300,
'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware':350,
'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware':400,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':500,
'scrapy.downloadermiddlewares.retry.RetryMiddleware':550,
'scrapy.downloadermiddlewares.ajaxcrawl.AjaxCrawlMiddleware':560,
'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware':580,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware':590,
'scrapy.downloadermiddlewares.redirect.RedirectMiddleware':600,
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware':700,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware':750,
'scrapy.downloadermiddlewares.stats.DownloaderStats':850,
'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware':900,
}
在Scrapy中默认启用了包含下载器中间件的dict。较低的订单更接近发动机,高订单更接近下载器。您不应该在项目中修改此设置,而是修改DOWNLOADER_MIDDLEWARES。有关更多信息,请参阅激活下载器中间件。
DOWNLOADER_STATS
默认值:True
是否启用下载器统计信息收集。
DOWNLOAD_DELAY
默认值:0
下载程序在从同一网站下载连续页面之前应该等待的时间(以秒为单位)。这可以用来遏制爬行速度,以避免服务器太硬。支持十进制数。例:
DOWNLOAD_DELAY = 0.25#250 ms的延迟
此设置也受RANDOMIZE_DOWNLOAD_DELAY设置(默认情况下启用)的影响。默认情况下,Scrapy不会在请求之间等待固定的时间间隔,而是使用0.5 * DOWNLOAD_DELAY和1.5 * DOWNLOAD_DELAY之间的随机间隔。
当CONCURRENT_REQUESTS_PER_IP不为零时,每个IP地址而不是每个域执行延迟。
您还可以通过设置download_delay spider属性来更改每个蜘蛛的设置。
DOWNLOAD_HANDLERS
默认值:{}
包含在项目中启用的请求下载器处理程序的dict。请参阅DOWNLOAD_HANDLERS_BASE例如格式。
DOWNLOAD_HANDLERS_BASE
默认:
{
'file':'scrapy.core.downloader.handlers.file.FileDownloadHandler',
'http':'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
'https':'scrapy.core.downloader.handlers.http.HTTPDownloadHandler',
's3':'scrapy.core.downloader.handlers.s3.S3DownloadHandler',
'ftp':'scrapy.core.downloader.handlers.ftp.FTPDownloadHandler',
}
包含在Scrapy中默认启用的请求下载处理程序的dict。您不应该在项目中修改此设置,修改DOWNLOAD_HANDLERS。
您可以通过在DOWNLOAD_HANDLERS中为其URI方案分配None来禁用任何这些下载处理程序。例如,要禁用内置的FTP处理程序(不需要替换),请将其放在您的settings.py中:
DOWNLOAD_HANDLERS = {
'ftp':无,
}
DOWNLOAD_TIMEOUT
默认值:180
下载器在超时之前等待的时间(以秒为单位)。
注意
可以使用download_timeout spider属性和使用download_timeout Request.meta密钥的每个请求,为每个蜘蛛设置此超时。
DOWNLOAD_MAXSIZE
默认值:1073741824(1024MB)
下载程序将下载的最大响应大小(以字节为单位)。
如果要禁用它设置为0。
注意
可以使用download_maxsize spider属性和每个请求使用download_maxsize Request.meta密钥来设置每个蜘蛛的大小。
此功能需要Twisted = 11.1。
DOWNLOAD_WARNSIZE
默认值:33554432(32MB)
下载程序的响应大小(以字节为单位)将开始发出警告。
如果要禁用它设置为0。
注意
使用download_warnsize spider属性和使用download_warnsize Request.meta键的每个请求,可以为每个蜘蛛设置此大小。
此功能需要Twisted = 11.1。
DOWNLOAD_FAIL_ON_DATALOSS
默认值:True
破坏的响应是否失败,即声明的Content-Length与服务器发送的内容不一致或分块响应不正确完成。如果为True,则这些响应会引发ResponseFailed([_ DataLoss])错误。如果为False,则会传递这些响应,并将标记dataloss添加到响应中,即:response.flags中的“dataloss”为True。
或者,可以通过将download_fail_on_dataloss Request.meta键设置为False来逐个设置。
注意
在几种情况下可能会发生损坏的响应或数据丢失错误,从服务器配置错误到网络错误到数据损坏。考虑到它们可能包含部分或不完整的内容,由用户决定是否有意义的处理破坏的响应。如果设置:RETRY_ENABLED为True,并且此设置设置为True,则ResponseFailed([_ DataLoss])将按照常规重试。
DUPEFILTER_CLASS
默认值:'scrapy.dupefilters.RFPDupeFilter'
用于检测和过滤重复请求的类。
根据请求指纹使用scrapy.utils.request.request_fingerprint功能,默认(RFPDupeFilter)过滤器。为了更改重复检查的方式,您可以将RFPDupeFilter子类化并覆盖其request_fingerprint方法。该方法应该接受scrapy请求对象并返回其指纹(一个字符串)。
您可以通过将DUPEFILTER_CLASS设置为“scrapy.dupefilters.BaseDupeFilter”来禁用对重复请求的过滤。不过要小心,因为你可以进入爬行循环。在特定请求中将dont_filter参数设置为True通常是一个更好的方法,该请求不应该被过滤。
DUPEFILTER_DEBUG
默认值:False
默认情况下,RFPDupeFilter仅记录第一个重复请求。将DUPEFILTER_DEBUG设置为True将使其记录所有重复的请求。
编辑
默认值:vi(在Unix系统上)或IDLE编辑器(在Windows上)
用于使用edit命令编辑蜘蛛的编辑器。另外,如果设置了EDITOR环境变量,则编辑命令将优先于默认设置。
EXTENSIONS
Default :: {}
包含项目中启用的扩展名的命令及其命令。
EXTENSIONS_BASE
默认:
{
'scrapy.extensions.corestats.CoreStats':0,
'scrapy.extensions.telnet.TelnetConsole':0,
'scrapy.extensions.memusage.MemoryUsage':0,
'scrapy.extensions.memdebug.MemoryDebugger':0,
'scrapy.extensions.closespider.CloseSpider':0,
'scrapy.extensions.feedexport.FeedExporter':0,
'scrapy.extensions.logstats.LogStats':0,
'scrapy.extensions.spiderstate.SpiderState':0,
'scrapy.extensions.throttle.AutoThrottle':0,
}
包含Scrapy中默认扩展名的命令及其命令。此设置包含所有稳定的内置扩展。请记住,其中一些需要通过设置启用。
有关详细信息,请参阅扩展用户指南和可用扩展列表。
FEED_TEMPDIR
Feed Temp目录允许您在使用FTP Feed存储和Amazon S3上传之前设置自定义文件夹以保存爬网程序临时文件。
FTP_PASSIVE_MODE
默认值:True
是否在启动FTP传输时使用被动模式。
FTP_PASSWORD
默认:“客人”
请求元中没有“ftp_password”时用于FTP连接的密码。
注意
解释RFC 1635虽然通常使用密码“guest”或者匿名FTP的电子邮件地址,但一些FTP服务器明确要求用户的电子邮件地址,不允许使用“guest”密码进行登录。
FTP_USER
默认:“匿名”
在请求元中没有“ftp_user”时用于FTP连接的用户名。
ITEM_PIPELINES
默认值:{}
包含要使用的项目管道的命令及其命令。订单值是任意的,但通常在0-1000范围内定义它们。较高的订单下订单流程。
例:
ITEM_PIPELINES = {
'mybot.pipelines.validate.ValidateMyItem':300,
'mybot.pipelines.validate.StoreMyItem':800,
}
ITEM_PIPELINES_BASE
默认值:{}
包含在Scrapy中默认启用的管道的dict。您不应该在项目中修改此设置,而是修改ITEM_PIPELINES。
LOG_ENABLED
默认值:True
是否启用日志记录。
LOG_ENCODING
默认值:'utf-8'
用于记录的编码。
LOG_FILE
默认值:无
要用于记录输出的文件名。如果没有,将使用标准错误。
LOG_FORMAT
默认值:'%(asctime)s [%(name)s]%(levelname)s:%(message)s'
用于格式化日志消息的字符串。有关可用占位符的整个列表,请参阅Python日志记录文档。
LOG_DATEFORMAT
默认值:'%Y-%m-%d%H:%M:%S'
格式化日期/时间的字符串,扩展%(asctime)占位符在LOG_FORMAT中。有关可用指令的整个列表,请参阅Python datetime文档。
LOG_LEVEL
默认值:'DEBUG'
要记录的最低级别。可用级别有:CRITICAL,ERROR,WARNING,INFO,DEBUG。有关更多信息,请参阅日志记录。
LOG_STDOUT
默认值:False
如果为True,则您的进程的所有标准输出(和错误)将被重定向到日志。例如,如果打印“hello”,它将显示在Scrapy日志中。
LOG_SHORT_NAMES
默认值:False
如果为True,日志将只包含根路径。如果设置为False,则显示负责日志输出的组件
MEMDEBUG_ENABLED
默认值:False
是否启用内存调试。
MEMDEBUG_NOTIFY
默认值:[]
启用内存调试时,如果此设置不为空,内存报告将被发送到指定的地址,否则报告将被写入日志。
例:
MEMDEBUG_NOTIFY = ['[email protected]']
MEMUSAGE_ENABLED
默认值:True
范围:scrapy.extensions.memusage
是否启用内存使用扩展。此扩展记录跟踪进程使用的峰值内存(将其写入统计信息)。当它超过内存限制时,还可以选择关闭Scrapy进程(请参阅MEMUSAGE_LIMIT_MB),并在发生这种情况时通过电子邮件通知(请参阅MEMUSAGE_NOTIFY_MAIL)。
请参阅内存使用扩展名。
MEMUSAGE_LIMIT_MB
默认值:0
范围:scrapy.extensions.memusage
关闭Scrapy之前允许的最大内存量(以兆字节为单位)(如果MEMUSAGE_ENABLED为True)。如果为零,则不执行检查。
请参阅内存使用扩展。
MEMUSAGE_CHECK_INTERVAL_SECONDS
1.1版新功能
默认值:60.0
范围:scrapy.extensions.memusage
内存使用扩展检查当前内存使用情况,而不是由MEMUSAGE_LIMIT_MB和MEMUSAGE_WARNING_MB设置的限制,以固定的时间间隔。
这将设置这些间隔的长度,以秒为单位。
请参阅内存使用扩展。
MEMUSAGE_NOTIFY_MAIL
默认值:False
范围:scrapy.extensions.memusage
如果达到内存限制,则通知电子邮件列表。
例:
MEMUSAGE_NOTIFY_MAIL = ['[email protected]']
请参阅内存使用扩展。
MEMUSAGE_WARNING_MB
默认值:0
范围:scrapy.extensions.memusage
发送警告电子邮件通知之前允许的最大内存容量(兆字节)。如果为零,则不会产生警告。
NEWSPIDER_MODULE
默认值:''
使用genspider命令创建新的蜘蛛模块。
例:
NEWSPIDER_MODULE ='mybot.spiders_dev'
RANDOMIZE_DOWNLOAD_DELAY
默认值:True
如果启用,Scrapy将等待随机的时间(在0.5 * DOWNLOAD_DELAY和1.5 * DOWNLOAD_DELAY之间),同时从同一网站获取请求。
这种随机化减少了爬行器被分析请求的站点检测(并随后被阻止)的机会,该请求在请求之间的时间内寻找统计上显着的相似性。
随机化策略与wget --random-wait选项相同。
如果DOWNLOAD_DELAY为零(默认),此选项不起作用。
REACTOR_THREADPOOL_MAXSIZE
默认值:10
Twisted Reactor线程池大小的最大限制。这是各种Scrapy组件使用的常用多用途线程池。 Threaded DNS Resolver,BlockingFeedStorage,S3FilesStore仅举几例。如果遇到阻塞IO不足的问题,请增加此值。
REDIRECT_MAX_TIMES
默认值:20
定义请求可以重定向的最大时间。在这个最大值之后,请求的响应按原样返回。我们使用Firefox默认值进行相同的任务。
REDIRECT_PRIORITY_ADJUST
默认值:+2
范围:scrapy.downloadermiddlewares.redirect.RedirectMiddleware
调整相对于原始请求的重定向请求优先级:
正优先调整(默认)意味着更高的优先级。
负优先调整意味着较低的优先级。
RETRY_PRIORITY_ADJUST
默认值:-1
范围:scrapy.downloadermiddlewares.retry.Retry中间件
调整相对于原始请求的重试请求优先级:
积极优先调整意味着更高的优先级。
负优先调整(默认)意味着较低的优先级。
ROBOTSTXT_OBEY
默认值:False
范围:scrapy.downloadermiddlewares.robotstxt
如果启用,Scrapy将会尊重robots.txt策略。有关更多信息,请参阅RobotsTxtMiddleware。
注意
由于历史原因,默认值为False,默认情况下,该选项在由scrapy startproject命令生成的settings.py文件中启用。
SCHEDULER
默认值:'scrapy.core.scheduler.Scheduler'
用于爬行的调度程序。
SCHEDULER_DEBUG
默认值:False
设置为True将记录有关请求调度程序的调试信息。如果请求无法序列化到磁盘,则此日志记录(仅一次)。统计计数器(scheduler / unserializable)跟踪此次发生的次数。
日志中的示例条目:
1956-01-31 00:00:00 + 0800 [scrapy.core.scheduler]错误:无法序列化请求:
<GET http://example.com> - 原因:无法序列化<请求在0x9a7c7ec>
(类型请求)> - 不会记录更多的无序列化请求
(参见'scheduler / unserializable'stats counter)
SCHEDULER_DISK_QUEUE
默认值:'scrapy.squeues.PickleLifoDiskQueue'
调度程序将使用的磁盘队列类型。其他可用的类型是scrapy.squeues.PickleFifoDiskQueue,scrapy.squeues.MarshalFifoDiskQueue,scrapy.squeues.MarshalLifoDiskQueue。
SCHEDULER_MEMORY_QUEUE
默认值:'scrapy.squeues.LifoMemoryQueue'
调度程序使用的内存中队列的类型。其他可用的类型是:scrapy.squeues.FifoMemoryQueue。
SCHEDULER_PRIORITY_QUEUE
默认值:'queuelib.PriorityQueue'
调度程序使用的优先级队列的类型。
SPIDER_CONTRACTS
Default :: {}
包含项目中启用的蜘蛛合同的字典,用于测试蜘蛛。欲了解更多信息,请参阅蜘蛛合约。
SPIDER_CONTRACTS_BASE
默认:
{
'scrapy.contracts.default.UrlContract':1,
'scrapy.contracts.default.ReturnsContract':2,
'scrapy.contracts.default.ScrapesContract':3,
}
包含Scrapy中默认启用的scrapy合约的dict。您不应该在项目中修改此设置,请改为修改SPIDER_CONTRACTS。欲了解更多信息,请参阅蜘蛛合约。
您可以通过在“SPIDER_CONTRACTS”中的“类”路径中分配None来禁用任何这些合同。例如,要禁用内置的ScrapesContract,请将其放在您的settings.py中:
SPIDER_CONTRACTS = {
'scrapy.contracts.default.ScrapesContract':无,
}
SPIDER_LOADER_CLASS
默认值:'scrapy.spiderloader.SpiderLoader'
将用于加载Spider的类,必须实现SpiderLoader API。
SPIDER_LOADER_WARN_ONLY
1.3.3版新功能。
默认值:False
默认情况下,当scrapy尝试从SPIDER_MODULES导入spider类时,如果有任何ImportError异常,它将失败。但您可以选择将此异常静音,并将其设置为一个简单的警告,方法是设置SPIDER_LOADER_WARN_ONLY = True。
注意
一些刮擦命令运行这个设置为True已经(即他们只会发出一个警告,不会失败),因为他们实际上不需要加载蜘蛛类工作:scrapy runspider,scrapy设置,scrapy startproject,scrapy版本。
SPIDER_MIDDLEWARES
Default :: {}
包含您的项目中启用的蜘蛛中间件的命令及其命令。有关更多信息,请参阅激活蜘蛛中间件。
SPIDER_MIDDLEWARES_BASE
默认:
{
'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware':50,
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware':500,
'scrapy.spidermiddlewares.referer.RefererMiddleware':700,
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware':800,
'scrapy.spidermiddlewares.depth.DepthMiddleware':900,
}
一个包含蜘蛛中间件的指令默认情况下在Scrapy中启用,以及它们的命令。较低的订单更接近发动机,高订单更接近蜘蛛。有关更多信息,请参阅激活蜘蛛中间件。
SPIDER_MODULES
默认值:[]
Scrapy将寻找蜘蛛的模块列表。
例:
SPIDER_MODULES = ['mybot.spiders_prod','mybot.spiders_dev']
STATS_CLASS
默认值:'scrapy.statscollectors.MemoryStatsCollector'
用于收集统计数据的类,谁必须实现统计信息收集器API。
STATS_DUMP
默认值:True
一旦蜘蛛完成,就可以将Scrapy数据(到Scrapy日志)中。
欲了解更多信息,请参阅:Stats Collection。
STATSMAILER_RCPTS
默认值:[](空列表)
蜘蛛完成刮擦后发送Scrapy统计数据。有关详细信息,请参阅StatsMailer。
TELNETCONSOLE_ENABLED
默认值:True
一个布尔值,指定是否启用telnet控制台(只要其扩展名也启用)。
TELNETCONSOLE_PORT
默认值:[6023,6073]
用于telnet控制台的端口范围。如果设置为None或0,则使用动态分配的端口。欲了解更多信息,请参阅Telnet Console。
TEMPLATES_DIR
默认:模板dir里面的scrapy模块
使用startproject命令创建新项目时使用genspider命令查找模板的目录以及新的spider。
项目名称不能与项目子目录中的自定义文件或目录的名称冲突。
URLLENGTH_LIMIT
默认值:2083
范围:spidermiddlewares.urllength
允许抓取网址的最大网址长度。有关此设置的默认值的详细信息,请参阅:http://www.boutell.com/newfaq/misc/urllength.html
用户代理
默认值:“Scrapy / VERSION(+ http://scrapy.org)”
抓取时使用的默认用户代理,除非被覆盖。
在其他地方记录的设置:
以下设置在其他地方记录,请检查每个具体情况,了解如何启用和使用它们。
AJAXCRAWL_ENABLED
AUTOTHROTTLE_DEBUG
AUTOTHROTTLE_ENABLED
AUTOTHROTTLE_MAX_DELAY
AUTOTHROTTLE_START_DELAY
AUTOTHROTTLE_TARGET_CONCURRENCY
CLOSESPIDER_ERRORCOUNT
CLOSESPIDER_ITEMCOUNT
CLOSESPIDER_PAGECOUNT
CLOSESPIDER_TIMEOUT
COMMANDS_MODULE
COMPRESSION_ENABLED
COOKIES_DEBUG
COOKIES_ENABLED
FEED_EXPORTERS
FEED_EXPORTERS_BASE
FEED_EXPORT_ENCODING
FEED_EXPORT_FIELDS
FEED_EXPORT_INDENT
FEED_FORMAT
FEED_STORAGES
FEED_STORAGES_BASE
FEED_STORE_EMPTY
FEED_URI
FILES_EXPIRES
FILES_RESULT_FIELD
FILES_STORE
FILES_STORE_S3_ACL
FILES_URLS_FIELD
HTTPCACHE_ALWAYS_STORE
HTTPCACHE_DBM_MODULE
HTTPCACHE_DIR
HTTPCACHE_ENABLED
HTTPCACHE_EXPIRATION_SECS
HTTPCACHE_GZIP
HTTPCACHE_IGNORE_HTTP_CODES
HTTPCACHE_IGNORE_MISSING
HTTPCACHE_IGNORE_RESPONSE_CACHE_CONTROLS
HTTPCACHE_IGNORE_SCHEMES
HTTPCACHE_POLICY
HTTPCACHE_STORAGE
HTTPERROR_ALLOWED_CODES
HTTPERROR_ALLOW_ALL
HTTPPROXY_AUTH_ENCODING
HTTPPROXY_ENABLED
IMAGES_EXPIRES
IMAGES_MIN_HEIGHT
IMAGES_MIN_WIDTH
IMAGES_RESULT_FIELD
IMAGES_STORE
IMAGES_STORE_S3_ACL
IMAGES_THUMBS
IMAGES_URLS_FIELD
MAIL_FROM
MAIL_HOST
MAIL_PASS
MAIL_PORT
MAIL_SSL
MAIL_TLS
MAIL_USER
MEDIA_ALLOW_REDIRECTS
METAREFRESH_ENABLED
METAREFRESH_MAXDELAY
REDIRECT_ENABLED
REDIRECT_MAX_TIMES
REFERER_ENABLED
REFERRER_POLICY
RETRY_ENABLED
RETRY_HTTP_CODES
RETRY_TIMES
TELNETCONSOLE_HOST
TELNETCONSOLE_PORT