设置

Scrapy设置允许您自定义所有Scrapy组件的行为,包括核心,扩展,管道和蜘蛛本身。

设置的基础设施提供了代码可用于从中提取配置值的键值映射的全局命名空间。 可以通过不同的机制填充设置,如下所述。

这些设置也是选择当前活动的Scrapy项目(如果您有很多)的机制。

有关可用内置设置的列表,请参阅:内置设置参考。

指定设置

当您使用Scrapy时,您必须告诉您使用哪些设置。 您可以通过使用环境变量SCRAPY_SETTINGS_MODULE来执行此操作。

SCRAPY_SETTINGS_MODULE的值应该是Python路径语法,例如myproject.settings。 请注意,设置模块应该在Python导入搜索路径上。

填充设置

可以使用不同的机制来填充设置,每种机制具有不同的优先级。这是它们的优先顺序的列表:

  1. 命令行选项(最优先)

  2. 设置每蜘蛛

  3. 项目设置模块

  4. 每个命令的默认设置

  5. 默认全局设置(低优先级)

这些设置源的内容在内部进行了处理,但是可以使用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.MemoryDe​​bugger':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&gt; - 原因:无法序列化<请求在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

results matching ""

    No results matching ""