国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

scrapy 2.3 內(nèi)置設置參考

2021-06-10 16:25 更新

以下是所有可用的零碎設置的列表,按字母順序排列,以及它們的默認值和應用范圍。

如果設置綁定到任何特定組件,那么范圍(如果可用)將顯示使用該設置的位置。在這種情況下,將顯示該組件的模塊,通常是擴展、中間件或管道。它還意味著必須啟用組件才能使設置生效。

AWS_ACCESS_KEY_ID

違約: ?None?

需要訪問的代碼使用的AWS訪問密鑰 Amazon Web services ,比如 S3 feed storage backend .

AWS_SECRET_ACCESS_KEY

違約: ?None?

需要訪問的代碼使用的AWS密鑰 Amazon Web services ,比如 S3 feed storage backend .

AWS_ENDPOINT_URL

違約: ?None?

用于類似S3的存儲的端點URL,例如Minio或S3.scality。

AWS_USE_SSL

違約: ?None?

如果要禁用與S3或類似S3的存儲進行通信的SSL連接,請使用此選項。默認情況下將使用SSL。

AWS_VERIFY

違約: ?None?

驗證scray和S3或類似S3的存儲之間的SSL連接。默認情況下,將進行SSL驗證。

AWS_REGION_NAME

違約: ?None?

與AWS客戶端關聯(lián)的區(qū)域的名稱。

ASYNCIO_EVENT_LOOP

違約: ?None?

給定的異步事件循環(huán)類的導入路徑。

如果啟用了異步電抗器(請參閱 ?TWISTED_REACTOR? )此設置可用于指定要與之一起使用的異步事件循環(huán)。將設置設置為所需的異步事件循環(huán)類的導入路徑。如果設置為 ?None? 將使用默認的異步事件循環(huán)。

如果要使用 ?install_reactor()? 函數(shù),可以使用 ?event_loop_path? 參數(shù)指示要使用的事件循環(huán)類的導入路徑。

請注意,事件循環(huán)類必須繼承自 ?asyncio.AbstractEventLoop? .

BOT_NAME

違約: ?'scrapybot'?

這個項目的名字叫Scrapy。此名稱也將用于日志記錄。

當您使用 ?startproject? 命令。

CONCURRENT_ITEMS

違約: ?100?

中并行處理的最大并發(fā)項數(shù)(每個響應) item pipelines .

CONCURRENT_REQUESTS

違約: ?16?

Scrapy下載程序?qū)?zhí)行的最大并發(fā)(即同時)請求數(shù)。

CONCURRENT_REQUESTS_PER_DOMAIN

違約: ?8?

將對任何單個域執(zhí)行的最大并發(fā)(即同時)請求數(shù)。

參見: AutoThrottle 擴展 及其 ?AUTOTHROTTLE_TARGET_CONCURRENCY? 選擇權(quán)。

CONCURRENT_REQUESTS_PER_IP

違約: ?0?

將對任何單個IP執(zhí)行的最大并發(fā)(即同時)請求數(shù)。如果非零,則 ?CONCURRENT_REQUESTS_PER_DOMAIN? 設置被忽略,而是使用此設置。換句話說,并發(fā)限制將應用于每個IP,而不是每個域。

此設置還影響 ?DOWNLOAD_DELAY? 和 AutoThrottle 擴展 如果 ?CONCURRENT_REQUESTS_PER_IP? 是非零的,下載延遲是每個IP強制執(zhí)行的,而不是每個域。

DEFAULT_ITEM_CLASS

違約: ?'scrapy.item.Item'?

將用于實例化中的項的默認類 the Scrapy shell .

DEFAULT_REQUEST_HEADERS

違約:

{
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en',
}

用于報廢HTTP請求的默認頭。他們住在 ?DefaultHeadersMiddleware? .

DEPTH_LIMIT

違約: ?0?

經(jīng)營范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware?

允許對任何網(wǎng)站進行爬網(wǎng)的最大深度。如果為零,則不施加限制。

DEPTH_PRIORITY

違約: ?0?

經(jīng)營范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware?

用于調(diào)整 ?priority? A的 ?Request? 根據(jù)它的深度。

請求的優(yōu)先級調(diào)整如下:

request.priority = request.priority - ( depth * DEPTH_PRIORITY )

隨著深度的增加,正值為 ?DEPTH_PRIORITY? 降低請求優(yōu)先級(BFO),而負值則提高請求優(yōu)先級(DFO)。也見 Scrapy是以廣度優(yōu)先還是深度優(yōu)先的順序爬行? .

注解

此設置調(diào)整優(yōu)先級 以相反的方式 與其他優(yōu)先級設置相比 REDIRECT_PRIORITY_ADJUST 和 RETRY_PRIORITY_ADJUST .

DEPTH_STATS_VERBOSE

違約: ?False?

經(jīng)營范圍: ?scrapy.spidermiddlewares.depth.DepthMiddleware?

是否收集詳細深度統(tǒng)計信息。如果啟用此選項,則在統(tǒng)計信息中收集每個深度的請求數(shù)。

DNSCACHE_ENABLED

違約: ?True?

是否啟用DNS內(nèi)存緩存。

DNSCACHE_SIZE

違約: ?10000?

DNS內(nèi)存緩存大小。

DNS_RESOLVER

2.0 新版功能.

違約: ?'scrapy.resolver.CachingThreadedResolver'?

用于解析DNS名稱的類。違約 ?scrapy.resolver.CachingThreadedResolver? 支持通過指定DNS請求的超時 ?DNS_TIMEOUT? 設置,但僅適用于IPv4地址。Scrapy提供了另一種解決方案, ?scrapy.resolver.CachingHostnameResolver? ,它支持IPv4/IPv6地址,但不使用 ?DNS_TIMEOUT? 考慮在內(nèi)。

DNS_TIMEOUT

違約: ?60?

處理DNS查詢的超時(秒)。支持浮動。

DOWNLOADER

違約: ?'scrapy.core.downloader.Downloader'?

用于爬行的下載程序。

DOWNLOADER_HTTPCLIENTFACTORY

違約: ?'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'?

定義扭曲 ?protocol.ClientFactory? 用于HTTP/1.0連接的類(用于 ?HTTP10DownloadHandler? )

注解

現(xiàn)在很少使用HTTP/1.0,所以您可以安全地忽略此設置,除非您確實想使用HTTP/1.0并重寫 ?DOWNLOAD_HANDLERS? 對于 ?http(s)? 相應的計劃,即 'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler' .

DOWNLOADER_CLIENTCONTEXTFACTORY

違約: ?'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'?

表示要使用的ContextFactory的類路徑。

這里,“ContextFactory”是一個用于SSL/TLS上下文的扭曲術(shù)語,它定義了要使用的TLS/SSL協(xié)議版本,無論是進行證書驗證,還是甚至啟用客戶端身份驗證(以及其他各種事情)。

注解

剪貼默認上下文工廠 不執(zhí)行遠程服務器證書驗證 . 這通常對爬取Web很好。

如果您確實需要啟用遠程服務器證書驗證,scrapy還可以設置另一個上下文工廠類, ?'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'? ,它使用平臺的證書來驗證遠程端點。

如果確實使用自定義ContextFactory,請確保 ?__init__? 方法接受 ?method? 參數(shù)(這是 ?OpenSSL.SSL? 方法映射 ?DOWNLOADER_CLIENT_TLS_METHOD? a) ?tls_verbose_logging? 參數(shù) (?bool? 和A ?tls_ciphers? 參數(shù)(見) ?DOWNLOADER_CLIENT_TLS_CIPHERS? )

DOWNLOADER_CLIENT_TLS_CIPHERS

違約: ?'DEFAULT'?

使用此設置可自定義默認HTTP/1.1下載器使用的TLS/SSL密碼。

該設置應包含 OpenSSL cipher list format ,這些密碼將用作客戶端密碼。更改此設置可能是訪問某些HTTPS網(wǎng)站所必需的:例如,您可能需要使用 ?'DEFAULT:!DH'? 對于DH參數(shù)較弱的網(wǎng)站,或啟用未包含在中的特定密碼 ?DEFAULT? 如果網(wǎng)站需要的話。

DOWNLOADER_CLIENT_TLS_METHOD

違約: ?'TLS'?

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

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

  • ?'TLS'? :映射到OpenSSL ?TLS_method()? (A.K.A) ?SSLv23_method()? ,允許協(xié)議協(xié)商,從平臺支持的最高點開始; 默認,推薦
  • ?'TLSv1.0'? :此值強制HTTPS連接使用TLS版本1.0;如果希望scrapy的行為小于1.1,請設置此值。
  • ?'TLSv1.1'? :強制TLS版本1.1
  • ?'TLSv1.2'? :強制TLS版本1.2
  • ?'SSLv3'? :強制SSL版本3( 未推薦的 )

DOWNLOADER_CLIENT_TLS_VERBOSE_LOGGING

違約: ?False?

設置為 ?True? 將在建立HTTPS連接后啟用有關TLS連接參數(shù)的調(diào)試級別消息。記錄的信息類型取決于openssl和pyopenssl的版本。

此設置僅用于默認 ?DOWNLOADER_CLIENTCONTEXTFACTORY? .

DOWNLOADER_MIDDLEWARES

違約:: ?{{}}?

包含項目中啟用的下載器中間軟件及其訂單的dict。有關詳細信息,請參閱 激活下載器中間件 .

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,
}

包含默認在scrappy中啟用的下載器中間軟件的dict。低階更接近引擎,高階更接近下載器。您不應該在項目中修改此設置,請修改 ?DOWNLOADER_MIDDLEWARES? 相反。有關詳細信息,請參閱 激活下載器中間件 .

DOWNLOADER_STATS

違約: ?True?

是否啟用下載器統(tǒng)計信息收集。

DOWNLOAD_DELAY

違約: ?0?

下載者從同一網(wǎng)站下載連續(xù)頁面之前應等待的時間(以秒計)。這可以用來限制爬行速度,以避免對服務器造成太大的沖擊。支持十進制數(shù)。例子::

DOWNLOAD_DELAY = 0.25    # 250 ms of delay

此設置也受 ?RANDOMIZE_DOWNLOAD_DELAY? 設置(默認啟用)。默認情況下,scrappy不會在請求之間等待固定的時間,而是使用0.5之間的隨機間隔 * DOWNLOAD_DELAY and 1.5 * ?DOWNLOAD_DELAY? .

什么時候? ?CONCURRENT_REQUESTS_PER_IP? 為非零,每個IP地址而不是每個域強制延遲。

您還可以通過設置每個蜘蛛更改此設置 ?download_delay? 蜘蛛屬性。

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',
}

包含在scrappy中默認啟用的請求下載處理程序的dict。您不應該在項目中修改此設置,請修改 ?DOWNLOAD_HANDLERS? 相反。

您可以通過分配 ?None? 到他們的URI方案 ?DOWNLOAD_HANDLERS? . 例如,要禁用內(nèi)置的ftp處理程序(不替換),請將其放入 ?settings.py? :

DOWNLOAD_HANDLERS = {
    'ftp': None,
}

DOWNLOAD_TIMEOUT

違約: ?180?

下載程序在超時前等待的時間(以秒計)。

注解

可以使用以下方法設置每個蜘蛛的超時 ?download_timeout? 蜘蛛屬性和每個請求使用 ?download_timeout? request.meta鍵。

DOWNLOAD_MAXSIZE

違約: ?1073741824? (1024MB)

下載程序?qū)⑾螺d的最大響應大?。ㄗ止?jié))。

如果要禁用它,請將其設置為0。

注解

此尺寸可通過使用 ?download_maxsize? 蜘蛛屬性和每個請求使用 ?download_maxsize? request.meta鍵。

DOWNLOAD_WARNSIZE

違約: ?33554432? (32 MB)

下載程序?qū)㈤_始警告的響應大?。ㄗ止?jié))。

如果要禁用它,請將其設置為0。

注解

此尺寸可通過使用 ?download_warnsize? 蜘蛛屬性和每個請求使用 ?download_warnsize? request.meta鍵。

DOWNLOAD_FAIL_ON_DATALOSS

違約: ?True?

是否在錯誤的響應上失敗,也就是說,聲明 ?Content-Length? 與服務器發(fā)送的內(nèi)容不匹配,或者分塊響應未正確完成。如果 ?True? ,這些反應引發(fā)了 ResponseFailed([_DataLoss]) 錯誤。如果 False ,這些響應將傳遞給 dataloss 添加到響應中,即: 'dataloss' in response.flags 是 True .

或者,可以通過使用 ?download_fail_on_dataloss? 請求.meta鍵 False .

注解

從服務器配置錯誤到網(wǎng)絡錯誤,再到數(shù)據(jù)損壞,在多種情況下可能會發(fā)生中斷響應或數(shù)據(jù)丟失錯誤。由用戶決定處理中斷的響應是否有意義,因為它們可能包含部分或不完整的內(nèi)容。如果 RETRY_ENABLED 是 True 此設置設置為 True , the ResponseFailed([_DataLoss]) 失敗將像往常一樣重試。

DUPEFILTER_CLASS

違約: ?'scrapy.dupefilters.RFPDupeFilter'?

用于檢測和篩選重復請求的類。

默認值 (?RFPDupeFilter? )根據(jù)請求指紋使用 ?scrapy.utils.request.request_fingerprint? 功能。為了更改檢查重復項的方式,可以將 ?RFPDupeFilter? 并覆蓋其 ?request_fingerprint? 方法。這個方法應該接受slapy Request 對象并返回其指紋(字符串)。

您可以通過設置禁用重復請求的篩選 ?DUPEFILTER_CLASS? 到 ?'scrapy.dupefilters.BaseDupeFilter'? . 但是要非常小心,因為您可以進入爬行循環(huán)。通常設置 ?dont_filter? 參數(shù)到 ?True? 論具體 ?Request? 這不應該被過濾。

DUPEFILTER_DEBUG

違約: ?False?

默認情況下, ?RFPDupeFilter? 只記錄第一個重復請求。設置 ?DUPEFILTER_DEBUG? 到 ?True? 將使其記錄所有重復的請求。

EDITOR

違約: ?vi? (在UNIX系統(tǒng)上)或空閑編輯器(在Windows上)

用于編輯蜘蛛的編輯器 ?edit? 命令。此外,如果 ?EDITOR? 設置了環(huán)境變量, ?edit? 命令將優(yōu)先于默認設置。

EXTENSIONS

違約:: ?{{}}?

包含項目中啟用的擴展及其順序的dict。

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,
}

包含默認情況下在scrappy中可用的擴展名及其順序的dict。此設置包含所有穩(wěn)定的內(nèi)置擴展。請記住,其中一些需要通過設置啟用。

有關更多信息,請參閱 extensions user guide 以及 list of available extensions .

FEED_TEMPDIR

feed temp目錄允許您設置自定義文件夾,以便在上載之前保存crawler臨時文件 FTP feed storage 和 Amazon S3 .

FEED_STORAGE_GCS_ACL

將項存儲到中時使用的訪問控制列表(ACL) Google Cloud Storage . 有關如何設置此值的詳細信息,請參閱列 JSON API 在里面 Google Cloud documentation .

FTP_PASSIVE_MODE

違約: ?True?

啟動FTP傳輸時是否使用被動模式。

FTP_PASSWORD

違約: ?"guest"?

當沒有ftp連接時用于ftp連接的密碼 ?"ftp_password"? 在里面 ?Request? 元。

注解

釋義 RFC 1635 盡管匿名ftp通常使用密碼“guest”或電子郵件地址,但有些ftp服務器明確要求用戶的電子郵件地址,不允許使用“guest”密碼登錄。

FTP_USER

違約: ?"anonymous"?

當沒有ftp連接時用于ftp連接的用戶名 ?"ftp_user"? 在里面 Request 元。

GCS_PROJECT_ID

違約: ?None?

在上存儲數(shù)據(jù)時將使用的項目ID Google Cloud Storage .

ITEM_PIPELINES

違約: ?{{}}?

包含要使用的項目管道及其訂單的dict。順序值是任意的,但通常在0-1000范圍內(nèi)定義它們。低訂單處理優(yōu)先于高訂單。

例子::

ITEM_PIPELINES = {
    'mybot.pipelines.validate.ValidateMyItem': 300,
    'mybot.pipelines.validate.StoreMyItem': 800,
}

ITEM_PIPELINES_BASE

違約: ?{{}}?

包含默認情況下在Scrapy中啟用的管道的dict。您不應該在項目中修改此設置,請修改 ?ITEM_PIPELINES? 相反。

LOG_ENABLED

違約: ?True?

是否啟用日志記錄。

LOG_ENCODING

違約: ?'utf-8'?

用于日志記錄的編碼。

LOG_FILE

違約: ?None?

用于日志記錄輸出的文件名。如果 ?None? ,將使用標準錯誤。

LOG_FORMAT

違約: ?'%(asctime)s [%(name)s] %(levelname)s: %(message)s'?

用于格式化日志消息的字符串。請參閱 Python logging documentation 所有可用占位符列表。

LOG_DATEFORMAT

違約: ?'%Y-%m-%d %H:%M:%S'?

用于格式化日期/時間的字符串,擴展 ?%(asctime)s? 占位符 ?LOG_FORMAT? . 參考 Python datetime documentation 對于可用指令的整個列表。

LOG_FORMATTER

違約: ?scrapy.logformatter.LogFormatter?

用于的類 formatting log messages 對于不同的行動。

LOG_LEVEL

違約: ?'DEBUG'?

要記錄的最低級別。可用級別包括:嚴重、錯誤、警告、信息、調(diào)試。有關詳細信息,請參閱 登錄 .

LOG_STDOUT

違約: ?False?

如果 ?True? ,進程的所有標準輸出(和錯誤)都將重定向到日志。例如,如果你 ?print('hello')? 它會出現(xiàn)在殘缺的木頭上。

LOG_SHORT_NAMES

違約: ?False?

如果 ?True? 日志只包含根路徑。如果設置為 ?False? 然后顯示負責日志輸出的組件

LOGSTATS_INTERVAL

違約: ?60.0?

統(tǒng)計信息的每個日志打印輸出之間的間隔(秒) ?LogStats? .

MEMDEBUG_ENABLED

違約: ?False?

是否啟用內(nèi)存調(diào)試。

MEMDEBUG_NOTIFY

違約: ?[]?

當啟用內(nèi)存調(diào)試時,如果此設置不為空,則會將內(nèi)存報告發(fā)送到指定的地址,否則報告將寫入日志。

例子::

MEMDEBUG_NOTIFY = ['user@example.com']

MEMUSAGE_ENABLED

違約: ?True?

經(jīng)營范圍: ?scrapy.extensions.memusage?

是否啟用內(nèi)存使用擴展。此擴展跟蹤進程使用的峰值內(nèi)存(它將其寫入統(tǒng)計信息)。它還可以選擇在超過內(nèi)存限制時關閉 Scrapy 進程(請參見 ?MEMUSAGE_LIMIT_MB? ,并在發(fā)生這種情況時通過電子郵件通知(請參見 ?MEMUSAGE_NOTIFY_MAIL? )

見 內(nèi)存使用擴展 .

MEMUSAGE_LIMIT_MB

違約: ?0?

經(jīng)營范圍: ?scrapy.extensions.memusage?

關閉scrappy前允許的最大內(nèi)存量(以兆字節(jié)為單位)(如果memusage_enabled為true)。如果為零,則不執(zhí)行任何檢查。

見 內(nèi)存使用擴展 .

MEMUSAGE_CHECK_INTERVAL_SECONDS

違約: ?60.0?

經(jīng)營范圍: ?scrapy.extensions.memusage?

這個 Memory usage extension 檢查當前內(nèi)存使用情況,與 ?MEMUSAGE_LIMIT_MB? 和 ?MEMUSAGE_WARNING_MB? ,以固定的時間間隔。

這將以秒為單位設置這些間隔的長度。

見 內(nèi)存使用擴展 .

MEMUSAGE_NOTIFY_MAIL

違約: ?False?

經(jīng)營范圍: ?scrapy.extensions.memusage?

通知是否達到內(nèi)存限制的電子郵件列表。

例子::

MEMUSAGE_NOTIFY_MAIL = ['user@example.com']

見 內(nèi)存使用擴展 .

MEMUSAGE_WARNING_MB

違約: ?0?

經(jīng)營范圍: ?scrapy.extensions.memusage?

發(fā)送警告電子郵件通知前允許的最大內(nèi)存量(以兆字節(jié)為單位)。如果為零,則不會產(chǎn)生警告。

NEWSPIDER_MODULE

違約: ?''?

模塊在何處使用 ?genspider? 命令。

例子:

NEWSPIDER_MODULE = 'mybot.spiders_dev'

RANDOMIZE_DOWNLOAD_DELAY

違約: ?True?

如果啟用,Scrapy將隨機等待一段時間(0.5之間 * ?DOWNLOAD_DELAY? and 1.5 * ?DOWNLOAD_DELAY? )同時從同一網(wǎng)站獲取請求。

這種隨機化減少了爬蟲被站點檢測(并隨后被阻止)的機會,這些站點分析請求,尋找它們請求之間的時間有統(tǒng)計學意義的相似性。

隨機化策略與 wget ?--random-wait? 選擇權(quán)。

如果 ?DOWNLOAD_DELAY? 為零(默認值)此選項無效。

REACTOR_THREADPOOL_MAXSIZE

違約: ?10?

扭曲反應器線程池大小的最大限制。這是各種 Scrapy 組件使用的通用多用途線程池。線程DNS解析器,blockingfeedstorage,s3filestore等等。如果遇到阻塞IO不足的問題,請增加此值。

REDIRECT_PRIORITY_ADJUST

違約: ?+2?

經(jīng)營范圍: ?scrapy.downloadermiddlewares.redirect.RedirectMiddleware?

相對于原始請求調(diào)整重定向請求優(yōu)先級:

  • 正優(yōu)先級調(diào)整(默認)意味著更高的優(yōu)先級。
  • 負優(yōu)先級調(diào)整意味著低優(yōu)先級。

RETRY_PRIORITY_ADJUST

違約: ?-1?

經(jīng)營范圍: ?scrapy.downloadermiddlewares.retry.RetryMiddleware?

相對于原始請求調(diào)整重試請求優(yōu)先級:

  • 積極的優(yōu)先級調(diào)整意味著更高的優(yōu)先級。
  • 負優(yōu)先級調(diào)整(默認)意味著低優(yōu)先級。

ROBOTSTXT_OBEY

違約: ?False?

經(jīng)營范圍: ?scrapy.downloadermiddlewares.robotstxt?

如果啟用,scrapy將遵守robots.txt策略。有關詳細信息,請參閱 RobotsTxtMiddleware .

注解

當默認值為 ?False? 出于歷史原因,默認情況下,此選項在由生成的settings.py文件中啟用。 ?scrapy startproject? 命令。

ROBOTSTXT_PARSER

違約: ?'scrapy.robotstxt.ProtegoRobotParser'?

用于分析的分析器后端 ?robots.txt? 文件夾。有關詳細信息,請參閱 RobotsTxtMiddleware .

ROBOTSTXT_USER_AGENT

違約: ?None?

中用于匹配的用戶代理字符串機器人.txt文件。如果 None ,隨請求或 ?USER_AGENT? 設置(按該順序)將用于確定要在中使用的用戶代理機器人.txt文件。

SCHEDULER

違約: ?'scrapy.core.scheduler.Scheduler'?

用于爬網(wǎng)的計劃程序。

SCHEDULER_DEBUG

違約: ?False?

設置為 ?True? 將記錄有關請求計劃程序的調(diào)試信息。如果無法將請求序列化到磁盤,則當前只記錄一次。統(tǒng)計計數(shù)器 (?scheduler/unserializable? )跟蹤發(fā)生這種情況的次數(shù)。

日志中的示例條目:

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'?

計劃程序?qū)⑹褂玫拇疟P隊列類型。其他可用類型包括 ?scrapy.squeues.PickleFifoDiskQueue? , ?scrapy.squeues.MarshalFifoDiskQueue? , ?scrapy.squeues.MarshalLifoDiskQueue? .

SCHEDULER_MEMORY_QUEUE

違約: ?'scrapy.squeues.LifoMemoryQueue'?

調(diào)度程序使用的內(nèi)存中隊列的類型。其他可用類型為: ?scrapy.squeues.FifoMemoryQueue? .

SCHEDULER_PRIORITY_QUEUE

違約: ?'scrapy.pqueues.ScrapyPriorityQueue'?

調(diào)度程序使用的優(yōu)先級隊列的類型。另一種可用類型是 ?scrapy.pqueues.DownloaderAwarePriorityQueue? . ?scrapy.pqueues.DownloaderAwarePriorityQueue? 比 ?scrapy.pqueues.ScrapyPriorityQueue? 當您并行地對許多不同的域進行爬網(wǎng)時。但目前 ?scrapy.pqueues.DownloaderAwarePriorityQueue? 不與一起工作 CONCURRENT_REQUESTS_PER_IP .

SCRAPER_SLOT_MAX_ACTIVE_SIZE

2.0 新版功能.

違約: ?5_000_000?

正在處理的響應數(shù)據(jù)的軟限制(字節(jié))。

當正在處理的所有響應的大小之和大于此值時,Scrapy不處理新請求。

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? . 例如,禁用內(nèi)置 ?ScrapesContract? 把這個放在你的 ?settings.py? ::

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

SPIDER_LOADER_CLASS

違約: ?'scrapy.spiderloader.SpiderLoader'?

將用于加載spider的類,該類必須實現(xiàn) SpiderLoader API .

SPIDER_LOADER_WARN_ONLY

違約: ?False?

默認情況下,當Scrapy試圖從 ?SPIDER_MODULES? 如果有的話,它會很響地失效。 ?ImportError? 例外。但是您可以選擇沉默這個異常,并通過設置將它變成一個簡單的警告 ?SPIDER_LOADER_WARN_ONLY = True? .

注解

一些 scrapy commands 使用此設置運行到 ?True? 已經(jīng)(即,它們只會發(fā)出警告,不會失?。驗樗鼈儗嶋H上不需要加載蜘蛛類來工作: ?scrapy runspider? , ?scrapy settings? , ?scrapy startproject? , scrapy version .

SPIDER_MIDDLEWARES

違約:: ?{{}}?

包含項目中啟用的蜘蛛中間件及其訂單的dict。有關詳細信息,請參閱 激活蜘蛛中間件 .

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,
}

包含spider中間件的dict,默認情況下在scrappy中啟用,以及它們的順序。低階更接近發(fā)動機,高階更接近蜘蛛。有關詳細信息,請參閱 激活蜘蛛中間件 .

SPIDER_MODULES

違約: ?[]?

Scrapy將在其中查找蜘蛛的模塊列表。

例子::

SPIDER_MODULES = ['mybot.spiders_prod', 'mybot.spiders_dev']

STATS_CLASS

違約: ?'scrapy.statscollectors.MemoryStatsCollector'?

用于收集統(tǒng)計信息的類,必須實現(xiàn) 統(tǒng)計收集器API .

STATS_DUMP

違約: ?True?

轉(zhuǎn)儲 Scrapy stats (對著殘破的木頭)一旦蜘蛛完成。

有關詳細信息,請參閱: 統(tǒng)計數(shù)據(jù)集合 .

STATSMAILER_RCPTS

違約: ?[]? (空表)

蜘蛛完成爬取后發(fā)送殘缺數(shù)據(jù)。見 ?StatsMailer? 更多信息。

TELNETCONSOLE_ENABLED

違約: ?True?

一個布爾值,指定 telnet console 將被啟用(前提是它的擴展也被啟用)。

TEMPLATES_DIR

違約: templates Scrapy 模塊內(nèi)部目錄

創(chuàng)建新項目時要在其中查找模板的目錄 ?startproject? 命令和新蜘蛛 ?genspider? 命令。

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

TWISTED_REACTOR

2.0 新版功能.

違約: ?None?

給定的導入路徑 ?reactor? .

如果還沒有安裝其他反應器,比如當 ?scrapy? 調(diào)用CLI程序或在使用 ?CrawlerProcess? 班級。

如果您正在使用 ?CrawlerRunner? 類,還需要手動安裝正確的reactor。你可以用 ?install_reactor()? :

scrapy.utils.reactor.install_reactor(reactor_pathevent_loop_path=None)

安裝 ?reactor? 具有指定的導入路徑。如果啟用了asyncio reactor,還將使用指定的導入路徑安裝asyncio事件循環(huán)

如果已經(jīng)安裝了反應堆, ?install_reactor()? 沒有效果。

?CrawlerRunner.__init__? 加薪 ?Exception? 如果安裝的反應堆與 ?TWISTED_REACTOR? 設置;因此,具有頂層 ?reactor? 項目文件中的導入和導入的第三方庫將導致垃圾的增加 ?Exception? 當它檢查安裝了哪個反應堆。

為了使用Scrapy安裝的反應器:

import scrapy
from twisted.internet import reactor


class QuotesSpider(scrapy.Spider):
    name = 'quotes'

    def __init__(self, *args, **kwargs):
        self.timeout = int(kwargs.pop('timeout', '60'))
        super(QuotesSpider, self).__init__(*args, **kwargs)

    def start_requests(self):
        reactor.callLater(self.timeout, self.stop)

        urls = ['http://quotes.toscrape.com/page/1']
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {'text': quote.css('span.text text').get()}

    def stop(self):
        self.crawler.engine.close_spider(self, 'timeout')

使 ?Exception? ,變成:

import scrapy


class QuotesSpider(scrapy.Spider):
    name = 'quotes'

    def __init__(self, *args, **kwargs):
        self.timeout = int(kwargs.pop('timeout', '60'))
        super(QuotesSpider, self).__init__(*args, **kwargs)

    def start_requests(self):
        from twisted.internet import reactor
        reactor.callLater(self.timeout, self.stop)

        urls = ['http://quotes.toscrape.com/page/1']
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {'text': quote.css('span.text::text').get()}

    def stop(self):
        self.crawler.engine.close_spider(self, 'timeout')

的默認值 ?TWISTED_REACTOR? 設置是 ?None? ,這意味著Scrapy不會嘗試安裝任何特定的reactor,并且將使用Twisted為當前平臺定義的默認reactor。這是為了保持向后兼容性,并避免使用非默認反應器可能導致的問題。

有關其他信息,請參閱 Choosing a Reactor and GUI Toolkit Integration .

URLLENGTH_LIMIT

違約: ?2083?

經(jīng)營范圍: ?spidermiddlewares.urllength?

允許已爬網(wǎng)URL的最大URL長度。有關此設置的默認值的詳細信息,請參閱:https://boutell.com/newfaq/misc/urllength.html

USER_AGENT

違約: ?"Scrapy/VERSION (+https://scrapy.org)"?

爬網(wǎng)時要使用的默認用戶代理,除非被重寫。此用戶代理還由 ?RobotsTxtMiddleware? 如果 ?ROBOTSTXT_USER_AGENT? 設置是 ?None? 并且沒有為請求指定重寫用戶代理頭。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號