描述

在Scrapy组件的特性可以用Scrapy设置进行修改。 这些设置也可以选择Scrapy项目当前处于活动状态的情况下,如果你有多个Scrapy项目。

指定的设置

您必须通知哪些当你放弃一个网站,你正在使用设置Scrapy。 为此,重点内容环境变量SCRAPY_SETTINGS_MODULE应使用其值应在Python路径语法。

填充设置

下表显示了一些通过它可以填充设置的机制:

SN 机制和说明

1. Command line options

在这里,所传递的参数通过重写其他选项最高的优先顺序。 该-s用于覆盖一个或多个设置。

 

scrapy crawl myspider -s LOG_FILE=scrapy.log

 

2.  Settings per-spider
蜘蛛可以有自己的设置,通过使用属性custom_settings覆盖项目的。

 

class DemoSpider(scrapy.Spider) :
    name = 'demo'

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

 

3. Project settings module
在这里,你可以像填充在settings.py文件添加或修改的设置您的自定义设置。

4. Default settings per-command
每个Scrapy工具命令定义自己的设置在default_settings属性,覆盖全球的默认设置。   
5. Default global settings:
这些设置的scrapy.settings.default_settings模块中找到。

 

访问设置

他们都可以通过self.settings并初始化后在基地蜘蛛设置。
下面的例子说明了这一点:

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

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

 

要在初始化之前蜘蛛使用的设置,您必须覆盖from_crawler的方法init()你的蜘蛛的方法。 您可以通过属性访问设置scrapy.crawler.Crawler.settings传递给from_crawler方法。

下面的例子说明了这一点:

class MyExtension(object) :
    def __init__(self, log_is_enabled=False) :
        if log_is_enabled:
            print("Enabled log")

    @classmethod
    def from_crawler(cls, crawler) :
        settings = crawler.settings
        return cls(settings.getbool('LOG_ENABLED') )

 

理由设置名称

设置名称作为前缀添加到他们配置组件。 例如,对于扩展的robots.txt,设置名称可以ROBOTSTXT_ENABLED,ROBOTSTXT_OBEY,ROBOTSTXT_CACHEDIR等

内置的设置参考

下表给出了Scrapy的内置设置:

SN 设置和说明

1. AWS_ACCESS_KEY_ID
它是用于访问亚马逊网络服务。
默认值:无

2. AWS_SECRET_ACCESS_KEY
它是用于访问亚马逊网络服务。

3. BOT_NAME
它是一种可以用于构建用户代理机器人的名称。
默认值:“scrapybot”

4. CONCURRENT_ITEMS
在用来并行地处理所述物品处理器的现有项目的最大数目。

5. CONCURRENT_REQUESTS
其中Scrapy下载执行现有的最大请求数。
默认值:16

6.  CONCURRENT_REQUESTS_PER_DOMAIN
 现有的最大请求数,对于任何单域同时进行。
默认值:8

7. CONCURRENT_REQUESTS_PER_IP
现有的请求的最大数量的同时执行任何单一的IP。
默认值:0

8. DEFAULT_ITEM_CLASS
它是用来表示商品一类。
默认值:“scrapy.item.Item”

9. DEFAULT_REQUEST_HEADERS
它是用于Scrapy的HTTP请求的默认标题。
默认值:
{ 
   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 
}

 

10. DEPTH_LIMIT
因为蜘蛛的最大深度抓取任何网站。
默认值:0

11.     DEPTH_PRIORITY
它是用于根据深度来改变请求优先级的整数。
默认值:0

12.     DEPTH_STATS
它指出是否收集详细的统计资料与否。
默认值:True

13.     DEPTH_STATS_VERBOSE
当启用此设置,请求数统计中的每个详细深入的收集。
默认值:False

14.     DNSCACHE_ENABLED
它是用来启用内存缓存DNS。
默认值:True

15.     DNSCACHE_SIZE
它定义了在内存中缓存DNS的大小。
默认值:10000

16.     DNS_TIMEOUT
它是用来设置超时DNS处理的查询。
默认值:60

17.     DOWNLOADER
它是用来抓取过程中下载。
默认值:“scrapy.core.downloader.Downloader”

18.     DOWNLOADER_MIDDLEWARES
这是辞典保持下载中间件和他们的订单。
默认值: {}

19.     DOWNLOADER_MIDDLEWARES_BASE
这是默认启用的一个辞典保持下载中间件。
默认值:{ 'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware':100,}

20.     DOWNLOADER_STATS
此设置用于启用下载统计。
默认值:True

21.     DOWNLOAD_DELAY
它定义的总时间下载它从下载网站的网页之前。
默认值:0

22.     DOWNLOAD_HANDLERS
它与下载处理程序的字典。
默认值: {}

23.     DOWNLOAD_HANDLERS_BASE
它与默认情况下启用下载处理程序的字典。
默认值:{ '文件''scrapy.core.downloader.handlers.file.FileDownloadHandler',}

24.     DOWNLOAD_TIMEOUT
它的总时间下载到之前等待超时。
默认值:180

25.     DOWNLOAD_MAXSIZE
这是响应的下载器下载的最大尺寸。
默认值:1073741824 (1024MB)

26.     DOWNLOAD_WARNSIZE
它定义为响应下载警告的大小。
默认值:33554432 (32MB)

27.     DUPEFILTER_CLASS
这是用于检测和是重复的请求的滤波的类。
默认值:“scrapy.dupefilters.RFPDupeFilter”

28.     DUPEFILTER_DEBUG
当设置为true此设置记录所有重复的过滤器。
默认值:False

29. EDITOR
它是用来编辑使用编辑命令蜘蛛。
默认值:取决于环境

30.     EXTENSIONS
它是具有在项目中启用的扩展字典。
默认值: {}

31.     EXTENSIONS_BASE
它是具有内置的扩展字典。
默认值:{ 'scrapy.extensions.corestats.CoreStats':0,}

32.     FEED_TEMPDIR
它是用来设置,其中履带临时文件可以存储自定义文件夹的目录。

33.     ITEM_PIPELINES
它是具有管线的字典。
默认值: {}

34.     LOG_ENABLED
它定义如果日志被启用。
默认值:True

35.     LOG_ENCODING
它定义了将用于记录的编码类型。
默认值: 'UTF-8'

36.     LOG_FILE
它是用于记录的输出文件的名称。
默认值:无

37.     LOG_FORMAT
它是利用它的日志信息可以被格式化的字符串。
默认值: '%(asctime)小号[%(name) S] %(levelname) S: %(message) s'38.     LOG_DATEFORMAT
它是利用它的日期/时间可以格式化字符串。
默认值: '%Y-%间 - %D%H:%M:%S'
39.     LOG_LEVEL
它定义最低日志级别。
默认值:“DEBUG”

40.     LOG_STDOUT
此设置如果设置为true ,所有侑过程输出会出现在日志中。
默认值:False

41.     MEMDEBUG_ENABLED
它定义如果内存调试启用。
默认值:False

42.     MEMDEBUG_NOTIFY
它定义启用内存调试时,发送到特定地址的内存报告。
默认值: []

43.     MEMUSAGE_ENABLED
它定义如果存储器使用是当scrapy过程超过存储器限制被启用。
默认值:False

44.     MEMUSAGE_LIMIT_MB
如果定义了存储器的最大限制(in megabytes)被允许。
默认值:0

45.     MEMUSAGE_CHECK_INTERVAL_SECONDS
它用于通过设置间隔的长度,以检查本内存使用情况。
默认值:60.0

46.     MEMUSAGE_NOTIFY_MAIL
它是用来当内存达到极限与电子邮件列表通知。
默认值:False

47.     MEMUSAGE_REPORT
它定义如果内存使用情况报告要在关闭每个蜘蛛发送。
默认值:False

48.     MEMUSAGE_WARNING_MB
它定义被发送警告之前被允许的总存储。
默认值:0

49.     NEWSPIDER_MODULE
这是其中使用创造了新的蜘蛛模块genspider命令。
默认值: ''

50.     RANDOMIZE_DOWNLOAD_DELAY
它定义的时候了Scrapy等待下载的同时从网站上请求一个随机量。
默认值:True

51.     REACTOR_THREADPOOL_MAXSIZE
它定义为在反应器线程池的最大尺寸。
默认值:10

52.     REDIRECT_MAX_TIMES
它定义了一个请求多少次可以重定向。
默认值:20

53.     REDIRECT_PRIORITY_ADJUST
设置时,该设置,调整的请求重定向优先级。
默认值:+2

54.     RETRY_PRIORITY_ADJUST
设置时,该设置,调整请求重试的优先权。
默认值:-1

55.     ROBOTSTXT_OBEY
当设置为Scrapy遵循robots.txt政策true 。
默认值:False

56.     SCHEDULER
它定义了用于抓取目的调度。
默认值:“scrapy.core.scheduler.Scheduler”

57.     SPIDER_CONTRACTS
它是在有项目蜘蛛合同测试蜘蛛的字典。
默认值: {}

58.     SPIDER_CONTRACTS_BASE
这是保持其在Scrapy默认启用Scrapy合同的字典。
默认值:
 {
      'scrapy.contracts.default.UrlContract' : 1,
      'scrapy.contracts.default.ReturnsContract': 2,
    }

 

59.     SPIDER_LOADER_CLASS
它定义了实现一个类SpiderLoader API来加载蜘蛛。
默认值:“scrapy.spiderloader.SpiderLoader”

60.     SPIDER_MIDDLEWARES
这是拿着蜘蛛中间件的字典。
默认值: {}

61.     SPIDER_MIDDLEWARES_BASE
这是在Scrapy默认启用一个辞典保持蜘蛛中间件。
默认值:
{
  'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
}

 

62.     SPIDER_MODULES
它是一种含有蜘蛛其中Scrapy将寻找模块列表。
默认值: []

63.     STATS_CLASS
这是实现一类Stats Collector API来收集统计信息。
默认值:“scrapy.statscollectors.MemoryStatsCollector”

64.     STATS_DUMP
当设置此设置true ,转储统计到日志中。
默认值:True

65.     STATSMAILER_RCPTS
一旦蜘蛛刮完毕,Scrapy使用此设置发送统计数据。
默认值: []

66.     TELNETCONSOLE_ENABLED
它定义是否启用telnetconsole。
默认值:True

67.     TELNETCONSOLE_PORT
它定义了Telnet控制台端口。
默认值:[6023,6073]

68.     TEMPLATES_DIR
它是包含可以在创建新的项目中使用的模板目录。
默认值: templates scrapy模块内部目录

69.     URLLENGTH_LIMIT
它定义了将被允许抓取的网址的长度为URL的最大极限。
默认值:2083

70.     USER_AGENT
它定义了在抓取网站所使用的用户代理。
默认值: “Scrapy / VERSION“

 

 

转载自: https://blog.csdn.net/henry620/article/details/55505662 感谢作者 henry620

 
posted on 2020-06-19 11:39  天马行宇  阅读(960)  评论(0编辑  收藏  举报