scrapy 配置項及默認值


描述

在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM