1. 程式人生 > >Scrapy爬蟲入門教程十三 Settings(設定)

Scrapy爬蟲入門教程十三 Settings(設定)

開發環境:
Python 3.6.0 版本 (當前最新)
Scrapy 1.3.2 版本 (當前最新)

設定

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

爬蟲(請參閱爬蟲章節以供參考)可以定義自己的設定,這些設定將優先並覆蓋專案。他們可以通過設定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

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'

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

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而應修改 。有關更多資訊,請參閱 啟用下載器中介軟體

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

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'

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_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

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