經常使用的scrapy setting

原文請參考    Scrapy 爬蟲入門教程十三 Settings(設置), 講的很詳細html

官網參考  Settingspython

設置

Scrapy 設置容許您自定義全部 Scrapy 組件的行爲,包括核心,擴展,管道和爬蟲自己。web

設置的基礎結構提供了鍵值映射的全局命名空間,代碼可使用它從中提取配置值。能夠經過不一樣的機制來填充設置,這將在下面描述。ajax

這些設置也是選擇當前活動 Scrapy 項目的機制(若是您有不少)。shell

有關可用內置設置的列表,請參閱:內置設置參考後端

指定設置

當你使用 Scrapy,你必須告訴它你使用哪些設置。您能夠經過使用環境變量來執行此操做SCRAPY_SETTINGS_MODULEapi

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. 每一個爬蟲的設置

爬蟲(請參閱爬蟲章節以供參考)能夠定義本身的設置,這些設置將優先並覆蓋項目。他們能夠經過設置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())

注意

settings爬蟲初始化後的屬性是在基類爬蟲設置。若是你想在初始化以前使用設置(例如,在你的爬蟲的__init__()方法),你須要覆蓋該 from_crawler()方法。

能夠scrapy.crawler.Crawler.settings 經過傳遞到from_crawler擴展,中間件和項目管道中的方法的爬網程序的屬性訪問設置:

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(例如, settings['LOG_ENABLED'])同樣使用,但一般首選使用SettingsAPI 提供的方法之一,以您須要的格式提取設置,以免類型錯誤。

設置名稱的緣由

設置名稱一般以它們配置的組件爲前綴。例如,對於一個虛構的 robots.txt 分機正確的設置的名稱將是 ROBOTSTXT_ENABLEDROBOTSTXT_OBEYROBOTSTXT_CACHEDIR等。

內置設置參考

如下是全部可用 Scrapy 設置的列表,按字母順序,以及其默認值和適用範圍。

範圍(若是可用)顯示設置在哪裏使用,若是它綁定到任何特定組件。在這種狀況下,將顯示該組件的模塊,一般是擴展,中間件或管道。這也意味着必須啓用組件才能使設置具備任何效果。

AWS_ACCESS_KEY_ID

默認: None

由須要訪問 Amazon Web 服務的代碼使用的 AWS 訪問密鑰,例如 S3 源存儲後端

AWS_SECRET_ACCESS_KEY

默認: None

由須要訪問 Amazon Web 服務的代碼使用的 AWS 密鑰,例如 S3 源存儲後端。

BOT_NAME

默認: 'scrapybot'

此 Scrapy 項目實施的 bot 的名稱(也稱爲項目名稱)。這將用於默認狀況下構造 User-Agent,也用於日誌記錄。

當您使用startproject命令建立項目時,它會自動填充您的項目名稱。

CONCURRENT_ITEMS

默認: 100

在項處理器(也稱爲項目管道)中並行處理的併發項目的最大數量(每一個響應)。

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_DELAYAutoThrottle 擴展:若是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',
    'Accept-Language': '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_ADJUSTRETRY_PRIORITY_ADJUST

Does Scrapy crawl in breadth-first or depth-first order?

By default, Scrapy uses a LIFO queue for storing pending requests, which basically means that it crawls in DFO order. This order is more convenient in most cases. If you do want to crawl in true BFO order, you can do it by setting the following settings:

DEPTH_PRIORITY = 1 SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue' SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'

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'

定義protocol.ClientFactory 用於 HTTP / 1.0 鏈接(for HTTP10DownloadHandler)的Twisted 類。

注意

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,確保它接受一個method 參數在 init(這是OpenSSL.SSL方法映射DOWNLOADER_CLIENT_TLS_METHOD)。

DOWNLOADER_CLIENT_TLS_METHOD

默認: 'TLS'

使用此設置可自定義默認 HTTP / 1.1 下載程序使用的 TLS / SSL 方法。

此設置必須是如下字符串值之一:

  • 'TLS':映射到 OpenSSL TLS_method()(aka 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

默認:: {}

包含在您的項目中啓用的下載器中間件及其順序的字典。有關更多信息,請參閱激活下載器中間件。

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 中默認啓用的下載器中間件的字典。低訂單更靠近發動機,高訂單更接近下載器。您不該該在項目中修改此設置,DOWNLOADER_MIDDLEWARES而應修改 。有關更多信息,請參閱 激活下載器中間件

看到這裏,我發現以前改的隨即請求頭的數字也是400,說明要跟defaultheaders 的順序保持一致,不得不佩服別人的細心!

DOWNLOADER_STATS

默認: True

是否啓用下載器統計信息收集。

DOWNLOAD_DELAY

默認: 0

下載器在從同一網站下載連續頁面以前應等待的時間(以秒爲單位)。這能夠用於限制爬行速度,以免擊中服務器太難。支持小數。例:

DOWNLOAD_DELAY = 0.25    # 250 ms of delay

此設置也受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 中默認啓用的請求下載處理程序的字典。您不該該在項目中修改此設置,DOWNLOAD_HANDLERS而應修改 。

您能夠經過在其中None分配 URI 方案來禁用這些下載處理程序DOWNLOAD_HANDLERS。例如,要禁用內置的 FTP 處理程序(無替換),請將其放置在settings.py

DOWNLOAD_HANDLERS = {
    'ftp': None,
}

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。

DUPEFILTER_CLASS

默認: 'scrapy.dupefilters.RFPDupeFilter'

用於檢測和過濾重複請求的類。

默認(RFPDupeFilter)過濾器基於請求指紋使用該scrapy.utils.request.request_fingerprint函數。爲了改變重複檢查的方式,你能夠子類化RFPDupeFilter並重載它的request_fingerprint方法。這個方法應該接受 scrapy Request對象並返回其指紋(一個字符串)。

DUPEFILTER_DEBUG

默認: False

默認狀況下,RFPDupeFilter只記錄第一個重複的請求。設置DUPEFILTER_DEBUGTrue將使其記錄全部重複的請求。

EDITOR

默認值:取決於環境

用於使用 edit 命令編輯爬蟲的編輯器。它默認爲 EDITOR 環境變量,若是設置。不然,它默認爲 vi(在 Unix 系統上)或 IDLE 編輯器(在 Windows 上)。

EXTENSIONS

默認:: {}

包含項目中啓用的擴展名及其順序的字典。

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 Temd dir 容許您在使用 FTP 源存儲和 Amazon S3 上傳以前設置自定義文件夾以保存搜尋器臨時文件。

ITEM_PIPELINES

默認: {}

包含要使用的項目管道及其順序的字典。順序值是任意的,但一般將它們定義在 0-1000 範圍內。較低訂單處理較高訂單前。

例:

ITEM_PIPELINES = {
    'mybot.pipelines.validate.ValidateMyItem': 300,
    'mybot.pipelines.validate.StoreMyItem': 800,
}
數值越低越優先

ITEM_PIPELINES_BASE

默認: {}

包含 Scrapy 中默認啓用的管道的字典。您不該該在項目中修改此設置,ITEM_PIPELINES而應修改。

LOG_ENABLED

默認: True

是否啓用日誌記錄。

LOG_ENCODING

默認: 'utf-8'

用於記錄的編碼。

LOG_FILE

默認: None

用於記錄輸出的文件名。若是 None,將使用標準偏差。

LOG_FORMAT

默認: '%(asctime)s [%(name)s] %(levelname)s: %(message)s'

用於格式化日誌消息的字符串。有關可用佔位符的完整列表,請參閱 Python 日誌記錄文檔。

LOG_DATEFORMAT

默認: '%Y-%m-%d %H:%M:%S'

用於格式化日期 / 時間的字符串,佔位符的 %(asctime)s 擴展LOG_FORMAT。有關可用指令的完整列表,請參閱 Python datetime 文檔。

LOG_LEVEL

默認: 'DEBUG'

記錄的最低級別。可用級別爲:CRITICALERRORWARNINGINFODEBUG。有關詳細信息,請參閱日誌。

LOG_STDOUT

默認: False

若是True,您的進程的全部標準輸出(和錯誤)將被重定向到日誌。例如,若是它將出如今 Scrapy 日誌中。print 'hello'

LOG_SHORT_NAMES

默認: False

若是True,日誌將僅包含根路徑。若是設置爲,False 則它顯示負責日誌輸出的組件

MEMDEBUG_ENABLED

默認: False

是否啓用內存調試。

MEMDEBUG_NOTIFY

默認: []

當啓用內存調試時,若是此設置不爲空,則會將內存報告發送到指定的地址,不然報告將寫入日誌。

例:

MEMDEBUG_NOTIFY = ['user@example.com']

MEMUSAGE_ENABLED

默認: False

範圍: scrapy.extensions.memusage

是否啓用內存使用擴展,當超過內存限制時關閉 Scrapy 進程,並在發生這種狀況時經過電子郵件通知。

請參閱內存使用擴展。

MEMUSAGE_LIMIT_MB

默認: 0

範圍: scrapy.extensions.memusage

在關閉 Scrapy 以前容許的最大內存量(以兆字節爲單位)(若是MEMUSAGE_ENABLEDTrue)。若是爲零,則不執行檢查。

請參閱內存使用擴展

MEMUSAGE_CHECK_INTERVAL_SECONDS

新版本 1.1。

默認: 60.0

範圍: scrapy.extensions.memusage

內存使用擴展 檢查當前內存使用狀況,相對於限制由設置 MEMUSAGE_LIMIT_MBMEMUSAGE_WARNING_MB在固定的時間間隔。

這將設置這些間隔的長度(以秒爲單位)。

請參閱內存使用擴展

MEMUSAGE_NOTIFY_MAIL

默認: False

範圍: scrapy.extensions.memusage

要達到內存限制時通知的電子郵件列表。

例:

MEMUSAGE_NOTIFY_MAIL = ['user@example.com']

請參閱內存使用擴展

MEMUSAGE_REPORT

默認: False

範圍: scrapy.extensions.memusage

是否在每一個爬蟲關閉後發送內存使用報告。

請參閱內存使用擴展。

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 組件使用的常見多用途線程池。線程 DNS 解析器,BlockingFeedStorage,S3FilesStore 僅舉幾個例子。若是您遇到阻塞 IO 不足的問題,請增長此值。

REDIRECT_MAX_TIMES

默認: 20

定義請求可重定向的最長時間。在此最大值以後,請求的響應被原樣返回。咱們對同一個任務使用 Firefox 默認值。

REDIRECT_PRIORITY_ADJUST

默認: +2

範圍: scrapy.downloadermiddlewares.redirect.RedirectMiddleware

相對於原始請求調整重定向請求優先級:

  • 正優先級調整(默認)意味着更高的優先級。
  • 負優先級調整意味着較低優先級。

RETRY_PRIORITY_ADJUST

默認: -1

範圍: scrapy.downloadermiddlewares.retry.RetryMiddleware

調整相對於原始請求的重試請求優先級:

  • 正優先級調整意味着更高的優先級。
  • 負優先級調整(默認)表示較低優先級。

ROBOTSTXT_OBEY

默認: False

範圍: scrapy.downloadermiddlewares.robotstxt

若是啓用,Scrapy 會尊重 robots.txt 政策。有關詳細信息,請參閱 RobotsTxtMiddleware

注意

雖然默認值是False因爲歷史緣由,默認狀況下在 settings.py 文件中經過命令生成此選項。scrapy startproject

If Request.meta has dont_obey_robotstxt key set to True the request will be ignored by this middleware even if ROBOTSTXT_OBEY is enabled.

SCHEDULER

默認: 'scrapy.core.scheduler.Scheduler'

用於爬網的調度程序。

SCHEDULER_DEBUG

默認: False

設置 True 將記錄有關請求調度程序的調試信息。若是請求沒法序列化到磁盤,則當前日誌(僅一次)。Stats counter(scheduler/unserializable)跟蹤發生的次數。

日誌中的示例條目:

1956-01-31 00:00:00+0800 [scrapy.core.scheduler] ERROR: Unable to serialize request:
<GET http://example.com> - reason: cannot serialize <Request at 0x9a7c7ec>
(type Request)> - no more unserializable requests will be logged
(see 'scheduler/unserializable' stats counter)

SCHEDULER_DISK_QUEUE

默認: 'scrapy.squeues.PickleLifoDiskQueue'

將由調度程序使用的磁盤隊列的類型。其它可用的類型有 scrapy.squeues.PickleFifoDiskQueuescrapy.squeues.MarshalFifoDiskQueuescrapy.squeues.MarshalLifoDiskQueue

SCHEDULER_MEMORY_QUEUE

默認: 'scrapy.squeues.LifoMemoryQueue'

調度程序使用的內存中隊列的類型。其餘可用類型是: scrapy.squeues.FifoMemoryQueue

SCHEDULER_PRIORITY_QUEUE

默認: 'queuelib.PriorityQueue'

調度程序使用的優先級隊列的類型。

SPIDER_CONTRACTS

默認:: {}

包含在項目中啓用的爬蟲契約的 dict,用於測試爬蟲。有關更多信息,請參閱爬蟲合同

SPIDER_CONTRACTS_BASE

默認:

{
    'scrapy.contracts.default.UrlContract' : 1,
    'scrapy.contracts.default.ReturnsContract': 2,
    'scrapy.contracts.default.ScrapesContract': 3,
}

包含 Scrapy 中默認啓用的 scrapy 合約的 dict。您不該該在項目中修改此設置,SPIDER_CONTRACTS 而應修改。有關更多信息,請參閱爬蟲合同

您能夠經過None將其中的類路徑指定爲禁用任何這些合同SPIDER_CONTRACTS。例如,要禁用內置 ScrapesContract,將此放在您的settings.py

SPIDER_CONTRACTS = {
    'scrapy.contracts.default.ScrapesContract': None,
}

SPIDER_LOADER_CLASS

默認: 'scrapy.spiderloader.SpiderLoader'

將用於加載爬蟲程序的類,它必須實現 SpiderLoader API

SPIDER_LOADER_WARN_ONLY

新版本 1.3.3。

默認: False

默認狀況下,當 scrapy 嘗試從中導入爬蟲類時SPIDER_MODULES,若是有任何ImportError異常,它將大聲失敗。可是你能夠選擇沉默此異常,並經過設置將其變成一個簡單的警告。SPIDER_LOADER_WARN_ONLY = True

注意

有些 scrapy 命令使用此設置運行True 已經(即他們只會發出警告並不會失敗),由於他們實際上並不須要加載爬蟲類的工做: scrapy runspider, scrapy settings, scrapy startproject, scrapy version.

SPIDER_MIDDLEWARES

默認:: {}

包含在您的項目中啓用的爬蟲中間件的字典及其順序。有關更多信息,請參閱激活爬蟲中間件。

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'

用於收集統計信息的類,誰必須實現 Stats Collector API

STATS_DUMP
默認: True

一旦爬蟲完成,轉儲 Scrapy 統計(到 Scrapy 日誌)。

更多信息請參閱:統計數據收集

STATSMAILER_RCPTS

默認:( []空列表)

爬蟲完成刮擦後發送 Scrapy stats。查看 StatsMailer 更多信息。

TELNETCONSOLE_ENABLED

默認: True

布爾值,指定是否 啓用 telnet 控制檯(若是其擴展名也啓用)。

TELNETCONSOLE_PORT

默認: [6023, 6073]

用於 telnet 控制檯的端口範圍。若是設置爲 None 或 0,則使用動態分配的端口。有關詳細信息,請參閱 telnet 控制檯

TEMPLATES_DIR

默認值:templates dir 裏面的 scrapy 模塊

使用startproject命令和新爬蟲建立新項目時使用命令查找模板的目錄 genspider

項目名稱不得與子目錄中的自定義文件或目錄的名稱衝突project

URLLENGTH_LIMIT

默認: 2083

範圍: spidermiddlewares.urllength

容許抓取網址的最大網址長度。有關此設置的默認值的詳細信息,請參閱 http://www.boutell.com/newfaq/misc/urllength.html

USER_AGENT

默認: "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_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
  • 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
  • METAREFRESH_ENABLED
  • METAREFRESH_MAXDELAY
  • REDIRECT_ENABLED
  • REDIRECT_MAX_TIMES
  • REFERER_ENABLED
  • RETRY_ENABLED
  • RETRY_HTTP_CODES
  • RETRY_TIMES
  • TELNETCONSOLE_HOST
  • TELNETCONSOLE_PORT
相關文章
相關標籤/搜索