描述
在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