日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Scrapy源码阅读分析_5_Scrapy-settings源码分析

發(fā)布時(shí)間:2024/7/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scrapy源码阅读分析_5_Scrapy-settings源码分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

From:https://blog.csdn.net/weixin_37947156/article/details/74972642

?

The global defaults are located in the?scrapy.settings.default_settings?module and documented in the?Built-in settings reference?section.

?

?

設(shè)置

?

Scrapy 設(shè)置允許您自定義所有 Scrapy 組件的行為,包括 核心,擴(kuò)展,管道 和 爬蟲本身

設(shè)置的基礎(chǔ)結(jié)構(gòu)提供了鍵值映射的全局命名空間,代碼可以使用它從中提取配置值。可以通過(guò)不同的機(jī)制來(lái)填充設(shè)置,這將在下面描述。

這些設(shè)置也是選擇當(dāng)前活動(dòng) Scrapy 項(xiàng)目的機(jī)制(如果您有很多)。

有關(guān)可用內(nèi)置設(shè)置的列表,請(qǐng)參閱:內(nèi)置設(shè)置參考:https://docs.scrapy.org/en/latest/topics/settings.html#built-in-settings-reference

?

?

指定設(shè)置

?

當(dāng)你使用Scrapy,你必須告訴它你使用哪些設(shè)置。您可以通過(guò)使用環(huán)境變量來(lái)執(zhí)行此操作 SCRAPY_SETTINGS_MODULE

SCRAPY_SETTINGS_MODULE 應(yīng)該在 Python 路徑語(yǔ)法中,例如?myproject.settings

請(qǐng)注意,設(shè)置模塊應(yīng)該在Python?導(dǎo)入搜索路徑上。

?

?

填充設(shè)置

?

可以使用不同的機(jī)制來(lái)填充設(shè)置,每個(gè)機(jī)制具有不同的優(yōu)先級(jí)。這里是按優(yōu)先級(jí)降序排列的列表:

  • 命令行選項(xiàng)(最高優(yōu)先級(jí))
  • 每個(gè)爬蟲的設(shè)置
  • 項(xiàng)目設(shè)置模塊
  • 每命令的默認(rèn)設(shè)置
  • 默認(rèn)全局設(shè)置(優(yōu)先級(jí)較低)
  • 這些設(shè)置源的數(shù)量在內(nèi)部處理,但可以使用API??調(diào)用進(jìn)行手動(dòng)處理。請(qǐng)參閱?設(shè)置API 主題以供參考。
  • 這些機(jī)制在下面更詳細(xì)地描述。

    ?

    1.命令行選項(xiàng)

    命令行提供的參數(shù)是最優(yōu)先的參數(shù),覆蓋任何其他選項(xiàng)。您可以使用-s(或--set)命令行選項(xiàng)顯式覆蓋一個(gè)(或多個(gè))設(shè)置。

    例:scrapy crawl myspider -s LOG_FILE=scrapy.log

    ?

    2.每個(gè)爬蟲的設(shè)置

    爬蟲(請(qǐng)參閱爬蟲章節(jié)以供參考)可以定義自己的設(shè)置,這些設(shè)置將優(yōu)先并覆蓋項(xiàng)目。他們可以通過(guò)設(shè)置 custom_settings 屬性來(lái)實(shí)現(xiàn):

    class MySpider(scrapy.Spider):name = 'myspider'custom_settings = {'SOME_SETTING': 'some value',}

    ?

    3.項(xiàng)目設(shè)置模塊

    項(xiàng)目設(shè)置模塊是Scrapy項(xiàng)目的標(biāo)準(zhǔn)配置文件,它將填充大多數(shù)自定義設(shè)置。對(duì)于標(biāo)準(zhǔn)的Scrapy項(xiàng)目,這意味著您將添加或更改settings.py 為您的項(xiàng)目創(chuàng)建的文件中的設(shè)置。

    ?

    4.每命令的默認(rèn)設(shè)置

    每個(gè) Scrapy工具 命令都可以有自己的默認(rèn)設(shè)置,覆蓋全局默認(rèn)設(shè)置。這些自定義命令設(shè)置 default_settings 在命令類的屬性中指定。

    ?

    5.默認(rèn)全局設(shè)置

    全局默認(rèn)值位于 scrapy.settings.default_settings?模塊中,并記錄在 內(nèi)置設(shè)置參考 部分中。

    ?

    ?

    如何訪問(wèn)設(shè)置

    ?

    在爬蟲中,設(shè)置可通過(guò)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 爬蟲初始化后的屬性是在基類爬蟲設(shè)置。如果你想在初始化之前使用設(shè)置(例如,在你的爬蟲的 __init__() 方法),你需要覆蓋該?from_crawler() 方法。

    可以scrapy.crawler.Crawler.settings?通過(guò)傳遞到 from_crawler 擴(kuò)展,中間件 和 項(xiàng)目管道中的方法的爬網(wǎng)程序的屬性訪問(wèn)設(shè)置:

    class MyExtension(object):def __init__(self, log_is_enabled=False):if log_is_enabled:print("log is enabled!")@classmethoddef from_crawler(cls, crawler):settings = crawler.settingsreturn cls(settings.getbool('LOG_ENABLED'))

    設(shè)置對(duì)象可以像 dict(例如,?settings['LOG_ENABLED'])一樣使用,但通常首選使用 SettingsAPI?提供的方法之一,以您需要的格式提取設(shè)置,以避免類型錯(cuò)誤。

    ?

    設(shè)置名稱的原因

    ?

    設(shè)置名稱通常以它們配置的組件為前綴。例如,對(duì)于一個(gè)虛構(gòu)的robots.txt分機(jī)正確的設(shè)置的名稱將是?ROBOTSTXT_ENABLED,ROBOTSTXT_OBEY,ROBOTSTXT_CACHEDIR 等。

    ?

    內(nèi)置設(shè)置參考

    ?

    以下是所有可用Scrapy設(shè)置的列表,按字母順序,以及其默認(rèn)值和適用范圍。

    范圍(如果可用)顯示設(shè)置在哪里使用,如果它綁定到任何特定組件。在這種情況下,將顯示該組件的模塊,通常是擴(kuò)展,中間件或管道。這也意味著必須啟用組件才能使設(shè)置具有任何效果。

    ?

    AWS_ACCESS_KEY_ID

    默認(rèn):?None

    由需要訪問(wèn)Amazon Web服務(wù)的代碼使用的AWS訪問(wèn)密鑰,例如:S3源存儲(chǔ)后端。

    ?

    AWS_SECRET_ACCESS_KEY

    默認(rèn):?None

    由需要訪問(wèn)Amazon Web服務(wù)的代碼使用的AWS密鑰,例如:S3源存儲(chǔ)后端。

    ?

    BOT_NAME

    默認(rèn):?'scrapybot'

    此 Scrapy 項(xiàng)目實(shí)施的 bot 的名稱(也稱為項(xiàng)目名稱)。這將用于默認(rèn)情況下構(gòu)造 User-Agent,也用于日志記錄。

    當(dāng)您使用 startproject 命令創(chuàng)建項(xiàng)目時(shí),它會(huì)自動(dòng)填充您的項(xiàng)目名稱。

    ?

    CONCURRENT_ITEMS

    默認(rèn):?100

    在項(xiàng)處理器(也稱為 項(xiàng)目管道)中并行處理的并發(fā)項(xiàng)目的最大數(shù)量(每個(gè)響應(yīng))。

    ?

    CONCURRENT_REQUESTS

    默認(rèn):?16

    將由 Scrapy下載程序執(zhí)行的并發(fā)(即同時(shí))請(qǐng)求的最大數(shù)量。

    ?

    CONCURRENT_REQUESTS_PER_DOMAIN

    默認(rèn):?8

    將對(duì)任何單個(gè)域執(zhí)行的并發(fā)(即同時(shí))請(qǐng)求的最大數(shù)量。

    參見(jiàn):AutoThrottle擴(kuò)展 及其? AUTOTHROTTLE_TARGET_CONCURRENCY 選項(xiàng)。

    ?

    CONCURRENT_REQUESTS_PER_IP

    默認(rèn):?0

    將對(duì)任何單個(gè)IP執(zhí)行的并發(fā)(即同時(shí))請(qǐng)求的最大數(shù)量。如果非零,CONCURRENT_REQUESTS_PER_DOMAIN 則忽略該 設(shè)置,而改為使用此設(shè)置。換句話說(shuō),并發(fā)限制將應(yīng)用于每個(gè)IP,而不是每個(gè)域。

    此設(shè)置也會(huì)影響DOWNLOAD_DELAY和?AutoThrottle擴(kuò)展:如果CONCURRENT_REQUESTS_PER_IP?非零,下載延遲是強(qiáng)制每IP,而不是每個(gè)域。

    ?

    DEFAULT_ITEM_CLASS

    默認(rèn):?'scrapy.item.Item'

    將用于在 Scrapy shell 中實(shí)例化項(xiàng)的默認(rèn)類。

    ?

    DEFAULT_REQUEST_HEADERS

    默認(rèn):

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

    用于 Scrapy HTTP 請(qǐng)求的默認(rèn)標(biāo)頭。他們居住在?DefaultHeadersMiddleware

    ?

    DEPTH_LIMIT

    默認(rèn):?0

    范圍:?scrapy.spidermiddlewares.depth.DepthMiddleware

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

    DEPTH_PRIORITY
    默認(rèn):?0

    范圍:?scrapy.spidermiddlewares.depth.DepthMiddleware

    用于根據(jù)深度調(diào)整請(qǐng)求優(yōu)先級(jí)的整數(shù):

    如果為零(默認(rèn)),則不從深度進(jìn)行優(yōu)先級(jí)調(diào)整
    正值將降低優(yōu)先級(jí),即,較高深度請(qǐng)求將被稍后處理 ; 這通常用于做廣度優(yōu)先爬網(wǎng)(BFO)
    負(fù)值將增加優(yōu)先級(jí),即,較高深度請(qǐng)求將被更快地處理(DFO)
    參見(jiàn):Scrapy是否以廣度優(yōu)先或深度優(yōu)先順序爬行?關(guān)于調(diào)整BFO或DFO的Scrapy。

    ?

    注意
    此設(shè)置以與其他優(yōu)先級(jí)設(shè)置 和相反的方式調(diào)整優(yōu)先級(jí)。REDIRECT_PRIORITY_ADJUSTRETRY_PRIORITY_ADJUST

    ?

    DEPTH_STATS

    默認(rèn): True

    范圍:?scrapy.spidermiddlewares.depth.DepthMiddleware

    是否收集最大深度統(tǒng)計(jì)。

    ?

    DEPTH_STATS_VERBOSE

    默認(rèn):?False

    范圍:?scrapy.spidermiddlewares.depth.DepthMiddleware

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

    ?

    DNSCACHE_ENABLED

    默認(rèn):?True

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

    ?

    DNSCACHE_SIZE

    默認(rèn):?10000

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

    ?

    DNS_TIMEOUT

    默認(rèn):?60

    以秒為單位處理DNS查詢的超時(shí)。支持浮點(diǎn)。

    ?

    DOWNLOADER

    默認(rèn):?'scrapy.core.downloader.Downloader'

    用于抓取的下載器。

    ?

    DOWNLOADER_HTTPCLIENTFACTORY

    默認(rèn):?'scrapy.core.downloader.webclient.ScrapyHTTPClientFactory'

    定義protocol.ClientFactory?用于HTTP / 1.0連接(for?HTTP10DownloadHandler)的Twisted類。

    注意
    HTTP / 1.0現(xiàn)在很少使用,所以你可以安全地忽略這個(gè)設(shè)置,除非你使用Twisted <11.1,或者如果你真的想使用HTTP / 1.0和覆蓋DOWNLOAD_HANDLERS_BASE相應(yīng)的http(s)方案,即到?'scrapy.core.downloader.handlers.http.HTTP10DownloadHandler'。

    ?

    DOWNLOADER_CLIENTCONTEXTFACTORY

    默認(rèn):?'scrapy.core.downloader.contextfactory.ScrapyClientContextFactory'

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

    這里,“ContextFactory”是用于SSL / TLS上下文的Twisted術(shù)語(yǔ),定義要使用的TLS / SSL協(xié)議版本,是否執(zhí)行證書驗(yàn)證,或者甚至啟用客戶端驗(yàn)證(以及各種其他事情)。

    注意
    Scrapy默認(rèn)上下文工廠不執(zhí)行遠(yuǎn)程服務(wù)器證書驗(yàn)證。這通常對(duì)于網(wǎng)絡(luò)刮削是很好的。

    如果您需要啟用遠(yuǎn)程服務(wù)器證書驗(yàn)證,Scrapy還有另一個(gè)上下文工廠類,您可以設(shè)置,?'scrapy.core.downloader.contextfactory.BrowserLikeContextFactory'使用平臺(tái)的證書來(lái)驗(yàn)證遠(yuǎn)程端點(diǎn)。?僅當(dāng)使用Twisted> = 14.0時(shí),此選項(xiàng)才可用。

    如果你使用一個(gè)自定義的ContextFactory,確保它接受一個(gè)method?參數(shù)在init(這是OpenSSL.SSL方法映射DOWNLOADER_CLIENT_TLS_METHOD)。

    ?

    DOWNLOADER_CLIENT_TLS_METHOD

    默認(rèn):?'TLS'

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

    此設(shè)置必須是以下字符串值之一:

    • 'TLS':映射到OpenSSL?TLS_method()(aka?SSLv23_method()),允許協(xié)議協(xié)商,從平臺(tái)支持的最高開(kāi)始; 默認(rèn),推薦
    • 'TLSv1.0':此值強(qiáng)制HTTPS連接使用TLS版本1.0; 如果你想要Scrapy <1.1的行為,設(shè)置這個(gè)
    • 'TLSv1.1':強(qiáng)制TLS版本1.1
    • 'TLSv1.2':強(qiáng)制TLS版本1.2
    • 'SSLv3':強(qiáng)制SSL版本3(不推薦)

    注意
    我們建議您使用PyOpenSSL> = 0.13和Twisted> = 0.13或以上(如果可以,Twisted> = 14.0)。

    ?

    DOWNLOADER_MIDDLEWARES

    默認(rèn)::?{}

    包含在您的項(xiàng)目中啟用的下載器中間件及其順序的字典。有關(guān)更多信息,請(qǐng)參閱激活下載器中間件。

    ?

    DOWNLOADER_MIDDLEWARES_BASE

    默認(rèn):

    {'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中默認(rèn)啟用的下載器中間件的字典。低訂單更靠近發(fā)動(dòng)機(jī),高訂單更接近下載器。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,DOWNLOADER_MIDDLEWARES而應(yīng)修改 。有關(guān)更多信息,請(qǐng)參閱?激活下載器中間件。

    ?

    DOWNLOADER_STATS

    默認(rèn):?True

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

    ?

    DOWNLOAD_DELAY

    默認(rèn):?0

    下載器在從同一網(wǎng)站下載連續(xù)頁(yè)面之前應(yīng)等待的時(shí)間(以秒為單位)。這可以用于限制爬行速度,以避免擊中服務(wù)器太難。支持小數(shù)。例:

    DOWNLOAD_DELAY = 0.25 ? ?# 250 ms of delay

    此設(shè)置也受RANDOMIZE_DOWNLOAD_DELAY?設(shè)置(默認(rèn)情況下啟用)的影響。默認(rèn)情況下,Scrapy不會(huì)在請(qǐng)求之間等待固定的時(shí)間量,而是使用0.5?DOWNLOAD_DELAY和1.5?之間的隨機(jī)間隔DOWNLOAD_DELAY。

    當(dāng)CONCURRENT_REQUESTS_PER_IP為非零時(shí),每個(gè)IP地址而不是每個(gè)域強(qiáng)制執(zhí)行延遲。

    您還可以通過(guò)設(shè)置download_delay?spider屬性來(lái)更改每個(gè)爬蟲的此設(shè)置。

    ?

    DOWNLOAD_HANDLERS

    默認(rèn):?{}

    包含在您的項(xiàng)目中啟用的請(qǐng)求下載器處理程序的dict。參見(jiàn) DOWNLOAD_HANDLERS_BASE?示例格式。

    ?

    DOWNLOAD_HANDLERS_BASE

    默認(rèn):

    {?'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中默認(rèn)啟用的請(qǐng)求下載處理程序的字典。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,DOWNLOAD_HANDLERS而應(yīng)修改 。

    您可以通過(guò)在其中None分配URI方案來(lái)禁用這些下載處理程序DOWNLOAD_HANDLERS。例如,要禁用內(nèi)置的FTP處理程序(無(wú)替換),請(qǐng)將其放置在settings.py:

    DOWNLOAD_HANDLERS = {'ftp': None, }

    ?

    DOWNLOAD_TIMEOUT

    默認(rèn):?180

    下載器在超時(shí)前等待的時(shí)間量(以秒為單位)。

    注意
    可以使用download_timeout?Spider屬性和每個(gè)請(qǐng)求使用download_timeout?Request.meta鍵為每個(gè)爬蟲設(shè)置此超時(shí)。

    ?

    DOWNLOAD_MAXSIZE

    默認(rèn)值:1073741824(1024MB)

    下載器將下載的最大響應(yīng)大小(以字節(jié)為單位)。

    如果要禁用它設(shè)置為0。

    注意
    可以使用download_maxsize?Spider屬性和每個(gè)請(qǐng)求使用download_maxsize?Request.meta鍵為每個(gè)爬蟲設(shè)置此大小。

    此功能需要Twisted> = 11.1。

    ?

    DOWNLOAD_WARNSIZE

    默認(rèn)值:33554432(32MB)

    下載程序?qū)㈤_(kāi)始警告的響應(yīng)大小(以字節(jié)為單位)。

    如果要禁用它設(shè)置為0。

    注意
    可以使用download_warnsize?Spider屬性和每個(gè)請(qǐng)求使用download_warnsize?Request.meta鍵為每個(gè)爬蟲設(shè)置此大小。

    此功能需要Twisted> = 11.1。

    ?

    DUPEFILTER_CLASS

    默認(rèn):?'scrapy.dupefilters.RFPDupeFilter'

    用于檢測(cè)和過(guò)濾重復(fù)請(qǐng)求的類。

    默認(rèn)(RFPDupeFilter)過(guò)濾器基于請(qǐng)求指紋使用該scrapy.utils.request.request_fingerprint函數(shù)。為了改變重復(fù)檢查的方式,你可以子類化RFPDupeFilter并重載它的request_fingerprint方法。這個(gè)方法應(yīng)該接受scrapy?Request對(duì)象并返回其指紋(一個(gè)字符串)。

    ?

    DUPEFILTER_DEBUG

    默認(rèn):?False

    默認(rèn)情況下,RFPDupeFilter只記錄第一個(gè)重復(fù)的請(qǐng)求。設(shè)置DUPEFILTER_DEBUG為True將使其記錄所有重復(fù)的請(qǐng)求。

    ?

    EDITOR

    默認(rèn)值:取決于環(huán)境

    用于使用edit命令編輯爬蟲的編輯器。它默認(rèn)為EDITOR環(huán)境變量,如果設(shè)置。否則,它默認(rèn)為vi(在Unix系統(tǒng)上)或IDLE編輯器(在Windows上)。

    ?

    EXTENSIONS

    默認(rèn)::?{}

    包含項(xiàng)目中啟用的擴(kuò)展名及其順序的字典。

    ?

    EXTENSIONS_BASE

    默認(rèn):

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

    包含默認(rèn)情況下在Scrapy中可用的擴(kuò)展名及其順序的字典。此設(shè)置包含所有穩(wěn)定的內(nèi)置擴(kuò)展。請(qǐng)記住,其中一些需要通過(guò)設(shè)置啟用。

    有關(guān)詳細(xì)信息,請(qǐng)參閱 擴(kuò)展程序用戶指南?和 可用擴(kuò)展列表。

    ?

    FEED_TEMPDIR

    Feed Temd dir允許您在使用FTP源存儲(chǔ)和 Amazon S3上傳之前設(shè)置自定義文件夾以保存搜尋器臨時(shí)文件。

    ?

    ITEM_PIPELINES

    默認(rèn):?{}

    包含要使用的項(xiàng)目管道及其順序的字典。順序值是任意的,但通常將它們定義在0-1000范圍內(nèi)。較低訂單處理較高訂單前。

    例:

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

    ?

    ITEM_PIPELINES_BASE

    默認(rèn):?{}

    包含Scrapy中默認(rèn)啟用的管道的字典。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,ITEM_PIPELINES而應(yīng)修改。

    ?

    LOG_ENABLED

    默認(rèn):?True

    是否啟用日志記錄。

    ?

    LOG_ENCODING

    默認(rèn):?'utf-8'

    用于記錄的編碼。

    ?

    LOG_FILE

    默認(rèn):?None

    用于記錄輸出的文件名。如果None,將使用標(biāo)準(zhǔn)誤差。

    ?

    LOG_FORMAT

    默認(rèn):?'%(asctime)s [%(name)s] %(levelname)s: %(message)s'

    用于格式化日志消息的字符串。有關(guān)可用占位符的完整列表,請(qǐng)參閱Python日志記錄文檔。

    ?

    LOG_DATEFORMAT

    默認(rèn):?'%Y-%m-%d %H:%M:%S'

    用于格式化日期/時(shí)間的字符串,占位符的%(asctime)s擴(kuò)展LOG_FORMAT。有關(guān)可用指令的完整列表,請(qǐng)參閱Python datetime文檔。

    ?

    LOG_LEVEL

    默認(rèn):?'DEBUG'

    記錄的最低級(jí)別。可用級(jí)別為:CRITICAL,ERROR,WARNING,INFO,DEBUG。有關(guān)詳細(xì)信息,請(qǐng)參閱日志。

    ?

    LOG_STDOUT

    默認(rèn):?False

    如果True,您的進(jìn)程的所有標(biāo)準(zhǔn)輸出(和錯(cuò)誤)將被重定向到日志。例如,如果它將出現(xiàn)在Scrapy日志中。print 'hello'

    ?

    LOG_SHORT_NAMES

    默認(rèn):?False

    如果True,日志將僅包含根路徑。如果設(shè)置為,False?則它顯示負(fù)責(zé)日志輸出的組件

    ?

    MEMDEBUG_ENABLED

    默認(rèn):?False

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

    ?

    MEMDEBUG_NOTIFY

    默認(rèn):?[]

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

    例:MEMDEBUG_NOTIFY = ['user@example.com']

    ?

    MEMUSAGE_ENABLED

    默認(rèn):?False

    范圍:?scrapy.extensions.memusage

    是否啟用內(nèi)存使用擴(kuò)展,當(dāng)超過(guò)內(nèi)存限制時(shí)關(guān)閉Scrapy進(jìn)程,并在發(fā)生這種情況時(shí)通過(guò)電子郵件通知。

    請(qǐng)參閱內(nèi)存使用擴(kuò)展。

    ?

    MEMUSAGE_LIMIT_MB

    默認(rèn):?0

    范圍:?scrapy.extensions.memusage

    在關(guān)閉Scrapy之前允許的最大內(nèi)存量(以兆字節(jié)為單位)(如果MEMUSAGE_ENABLED為True)。如果為零,則不執(zhí)行檢查。

    請(qǐng)參閱 內(nèi)存使用擴(kuò)展。

    ?

    MEMUSAGE_CHECK_INTERVAL_SECONDS

    新版本1.1。

    默認(rèn):?60.0

    范圍:?scrapy.extensions.memusage

    該內(nèi)存使用擴(kuò)展?檢查當(dāng)前內(nèi)存使用情況,相對(duì)于限制由設(shè)置?MEMUSAGE_LIMIT_MB和MEMUSAGE_WARNING_MB在固定的時(shí)間間隔。

    這將設(shè)置這些間隔的長(zhǎng)度(以秒為單位)。

    請(qǐng)參閱內(nèi)存使用擴(kuò)展。

    ?

    MEMUSAGE_NOTIFY_MAIL

    默認(rèn):?False

    范圍:?scrapy.extensions.memusage

    要達(dá)到內(nèi)存限制時(shí)通知的電子郵件列表。

    例:MEMUSAGE_NOTIFY_MAIL = ['user@example.com']
    請(qǐng)參閱內(nèi)存使用擴(kuò)展。

    ?

    MEMUSAGE_REPORT

    默認(rèn):?False

    范圍:?scrapy.extensions.memusage

    是否在每個(gè)爬蟲關(guān)閉后發(fā)送內(nèi)存使用報(bào)告。

    請(qǐng)參閱內(nèi)存使用擴(kuò)展。

    ?

    MEMUSAGE_WARNING_MB

    默認(rèn):?0

    范圍:?scrapy.extensions.memusage

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

    ?

    NEWSPIDER_MODULE

    默認(rèn):?''

    模塊在哪里使用genspider命令創(chuàng)建新的爬蟲。

    例:NEWSPIDER_MODULE = 'mybot.spiders_dev'

    ?

    RANDOMIZE_DOWNLOAD_DELAY

    默認(rèn):?True

    如果啟用,Scrapy會(huì)在從同一網(wǎng)站獲取請(qǐng)求時(shí)等待隨機(jī)時(shí)間(介于0.5?DOWNLOAD_DELAY和1.5?之間DOWNLOAD_DELAY)。

    該隨機(jī)化降低了由分析請(qǐng)求的站點(diǎn)檢測(cè)(并隨后阻塞)爬行器的機(jī)會(huì),所述站點(diǎn)在它們的請(qǐng)求之間的時(shí)間內(nèi)尋找統(tǒng)計(jì)上顯著的相似性。

    隨機(jī)化策略與wget --random-wait選項(xiàng)使用的策略相同。

    如果DOWNLOAD_DELAY為零(默認(rèn)),此選項(xiàng)不起作用。

    ?

    REACTOR_THREADPOOL_MAXSIZE

    默認(rèn):?10

    Twisted Reactor線程池大小的上限。這是各種Scrapy組件使用的常見(jiàn)多用途線程池。線程DNS解析器,BlockingFeedStorage,S3FilesStore僅舉幾個(gè)例子。如果您遇到阻塞IO不足的問(wèn)題,請(qǐng)?jiān)黾哟酥怠?/p>

    ?

    REDIRECT_MAX_TIMES

    默認(rèn): 20

    定義請(qǐng)求可重定向的最長(zhǎng)時(shí)間。在此最大值之后,請(qǐng)求的響應(yīng)被原樣返回。我們對(duì)同一個(gè)任務(wù)使用Firefox默認(rèn)值。

    ?

    REDIRECT_PRIORITY_ADJUST

    默認(rèn): +2

    范圍: scrapy.downloadermiddlewares.redirect.RedirectMiddleware

    相對(duì)于原始請(qǐng)求調(diào)整重定向請(qǐng)求優(yōu)先級(jí):

    • 正優(yōu)先級(jí)調(diào)整(默認(rèn))意味著更高的優(yōu)先級(jí)。
    • 負(fù)優(yōu)先級(jí)調(diào)整意味著較低優(yōu)先級(jí)。

    ?

    RETRY_PRIORITY_ADJUST

    默認(rèn):?-1

    范圍:?scrapy.downloadermiddlewares.retry.RetryMiddleware

    調(diào)整相對(duì)于原始請(qǐng)求的重試請(qǐng)求優(yōu)先級(jí):

    • 正優(yōu)先級(jí)調(diào)整意味著更高的優(yōu)先級(jí)。
    • 負(fù)優(yōu)先級(jí)調(diào)整(默認(rèn))表示較低優(yōu)先級(jí)。

    ?

    ROBOTSTXT_OBEY

    默認(rèn):?False

    范圍:?scrapy.downloadermiddlewares.robotstxt

    如果啟用,Scrapy會(huì)尊重robots.txt政策。有關(guān)詳細(xì)信息,請(qǐng)參閱?RobotsTxtMiddleware。

    注意
    雖然默認(rèn)值是False由于歷史原因,默認(rèn)情況下在settings.py文件中通過(guò)命令生成此選項(xiàng)。scrapy startproject

    ?

    SCHEDULER

    默認(rèn):?'scrapy.core.scheduler.Scheduler'

    用于爬網(wǎng)的調(diào)度程序。

    ?

    SCHEDULER_DEBUG

    默認(rèn):?False

    設(shè)置True將記錄有關(guān)請(qǐng)求調(diào)度程序的調(diào)試信息。如果請(qǐng)求無(wú)法序列化到磁盤,則當(dāng)前日志(僅一次)。Stats counter(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

    默認(rèn):?'scrapy.squeues.PickleLifoDiskQueue'

    將由調(diào)度程序使用的磁盤隊(duì)列的類型。其它可用的類型有?scrapy.squeues.PickleFifoDiskQueue,scrapy.squeues.MarshalFifoDiskQueue,?scrapy.squeues.MarshalLifoDiskQueue。

    ?

    SCHEDULER_MEMORY_QUEUE

    默認(rèn):?'scrapy.squeues.LifoMemoryQueue'

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

    ?

    SCHEDULER_PRIORITY_QUEUE

    默認(rèn):?'queuelib.PriorityQueue'

    調(diào)度程序使用的優(yōu)先級(jí)隊(duì)列的類型。

    ?

    SPIDER_CONTRACTS

    默認(rèn)::?{}

    包含在項(xiàng)目中啟用的爬蟲契約的dict,用于測(cè)試爬蟲。有關(guān)更多信息,請(qǐng)參閱爬蟲合同。

    ?

    SPIDER_CONTRACTS_BASE

    默認(rèn):

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

    包含Scrapy中默認(rèn)啟用的scrapy合約的dict。您不應(yīng)該在項(xiàng)目中修改此設(shè)置,SPIDER_CONTRACTS 而應(yīng)修改。有關(guān)更多信息,請(qǐng)參閱 爬蟲合同。

    您可以通過(guò)None將其中的類路徑指定為禁用任何這些合同SPIDER_CONTRACTS。例如,要禁用內(nèi)置?ScrapesContract,將此放在您的settings.py:

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

    ?

    SPIDER_LOADER_CLASS

    默認(rèn):?'scrapy.spiderloader.SpiderLoader'

    將用于加載爬蟲程序的類,它必須實(shí)現(xiàn)?SpiderLoader API。

    ?

    SPIDER_LOADER_WARN_ONLY

    新版本1.3.3。

    默認(rèn):?False

    默認(rèn)情況下,當(dāng)scrapy嘗試從中導(dǎo)入爬蟲類時(shí)SPIDER_MODULES,如果有任何ImportError異常,它將大聲失敗。但是你可以選擇沉默此異常,并通過(guò)設(shè)置將其變成一個(gè)簡(jiǎn)單的警告。SPIDER_LOADER_WARN_ONLY = True

    注意
    有些scrapy命令使用此設(shè)置運(yùn)行True?已經(jīng)(即他們只會(huì)發(fā)出警告并不會(huì)失敗),因?yàn)樗麄儗?shí)際上并不需要加載爬蟲類的工作:?scrapy runspider,?scrapy settings,?scrapy startproject,?scrapy version.

    ?

    SPIDER_MIDDLEWARES

    默認(rèn):: {}

    包含在您的項(xiàng)目中啟用的爬蟲中間件的字典及其順序。有關(guān)更多信息,請(qǐng)參閱激活爬蟲中間件。

    ?

    SPIDER_MIDDLEWARES_BASE

    默認(rèn):

    {'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中默認(rèn)啟用的爬蟲中間件的字典及其順序。低訂單更靠近發(fā)動(dòng)機(jī),高訂單更接近爬蟲。有關(guān)更多信息,請(qǐng)參閱激活爬蟲中間件。

    ?

    SPIDER_MODULES

    默認(rèn): []

    Scrapy將尋找爬蟲的模塊列表。

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

    ?

    STATS_CLASS

    默認(rèn):?'scrapy.statscollectors.MemoryStatsCollector'

    用于收集統(tǒng)計(jì)信息的類,誰(shuí)必須實(shí)現(xiàn)?Stats Collector API。

    ?

    STATS_DUMP

    默認(rèn): True

    一旦爬蟲完成,轉(zhuǎn)儲(chǔ)Scrapy統(tǒng)計(jì)(到Scrapy日志)。

    更多信息請(qǐng)參閱:統(tǒng)計(jì)數(shù)據(jù)收集。

    ?

    STATSMAILER_RCPTS

    默認(rèn):(?[]空列表)

    爬蟲完成刮擦后發(fā)送Scrapy stats。查看 StatsMailer更多信息。

    ?

    TELNETCONSOLE_ENABLED

    默認(rèn):?True

    布爾值,指定是否 啟用telnet控制臺(tái)(如果其擴(kuò)展名也啟用)。

    ?

    TELNETCONSOLE_PORT

    默認(rèn):?[6023, 6073]

    用于telnet控制臺(tái)的端口范圍。如果設(shè)置為None或0,則使用動(dòng)態(tài)分配的端口。有關(guān)詳細(xì)信息,請(qǐng)參閱?telnet控制臺(tái)。

    ?

    TEMPLATES_DIR

    默認(rèn)值:templates?dir里面的scrapy模塊

    使用startproject命令和新爬蟲創(chuàng)建新項(xiàng)目時(shí)使用命令查找模板的目錄?genspider?。

    項(xiàng)目名稱不得與子目錄中的自定義文件或目錄的名稱沖突project。

    ?

    URLLENGTH_LIMIT

    默認(rèn):?2083

    范圍:?spidermiddlewares.urllength

    允許抓取網(wǎng)址的最大網(wǎng)址長(zhǎng)度。有關(guān)此設(shè)置的默認(rèn)值的詳細(xì)信息,請(qǐng)參閱http://www.boutell.com/newfaq/misc/urllength.html

    ?

    USER_AGENT

    默認(rèn):?"Scrapy/VERSION (+http://scrapy.org)"

    檢索時(shí)使用的默認(rèn)用戶代理,除非被覆蓋。

    ?

    其他地方記錄的設(shè)置:

    以下設(shè)置在其他地方記錄,請(qǐng)檢查每個(gè)具體案例,了解如何啟用和使用它們。

    • 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

    ?

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的Scrapy源码阅读分析_5_Scrapy-settings源码分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。