最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

21. Scrapy 框架 - settings

2020-07-02 11:34 作者:自學(xué)Python的小姐姐呀  | 我要投稿

Scrapy內(nèi)置設(shè)置

下面給出scrapy提供的常用內(nèi)置設(shè)置列表,你可以在settings.py文件里面修改這些設(shè)置,以應(yīng)用或者禁用這些設(shè)置項(xiàng)

  • BOT_NAME

    默認(rèn): 'scrapybot'

    Scrapy項(xiàng)目實(shí)現(xiàn)的bot的名字。用來構(gòu)造默認(rèn) User-Agent,同時(shí)也用來log。 當(dāng)你使用 startproject 命令創(chuàng)建項(xiàng)目時(shí)其也被自動(dòng)賦值。

  • CONCURRENT_ITEMS

    默認(rèn): 100

    Item Processor(即 Item Pipeline) 同時(shí)處理(每個(gè)response的)item的最大值

  • CONCURRENT_REQUESTS

    默認(rèn): 16

    Scrapy downloader 并發(fā)請求(concurrent requests)的最大值。

  • CONCURRENT_REQUESTS_PER_DOMAIN

    默認(rèn): 8

    對單個(gè)網(wǎng)站進(jìn)行并發(fā)請求的最大值。

  • CONCURRENT_REQUESTS_PER_IP

    默認(rèn): 0

    對單個(gè)IP進(jìn)行并發(fā)請求的最大值。如果非0,則忽略 CONCURRENT_REQUESTS_PER_DOMAIN 設(shè)定, 使用該設(shè)定。 也就是說,并發(fā)限制將針對IP,而不是網(wǎng)站。

    該設(shè)定也影響 DOWNLOAD_DELAY: 如果 CONCURRENT_REQUESTS_PER_IP 非0,下載延遲應(yīng)用在IP而不是網(wǎng)站上。

  • DEFAULT_ITEM_CLASS

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

    the Scrapy shell 中實(shí)例化item使用的默認(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 Request使用的默認(rèn)header。由 DefaultHeadersMiddleware 產(chǎn)生。

  • DOWNLOADER

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

    用于crawl的downloader.

  • DOWNLOADER_MIDDLEWARES

    默認(rèn):: {}

    保存項(xiàng)目中啟用的下載中間件及其順序的字典

  • DOWNLOAD_DELAY

    默認(rèn): 0

    下載器在下載同一個(gè)網(wǎng)站下一個(gè)頁面前需要等待的時(shí)間。該選項(xiàng)可以用來限制爬取速度, 減輕服務(wù)器壓力。同時(shí)也支持小數(shù)

  • DOWNLOAD_HANDLERS

    默認(rèn): {}

    保存項(xiàng)目中啟用的下載處理器(request downloader handler)的字典

  • DOWNLOAD_TIMEOUT

    默認(rèn): 180

    下載器超時(shí)時(shí)間(單位: 秒)

  • EXTENSIONS

    默認(rèn):{}

    保存項(xiàng)目中啟用的插件及其順序的字典

  • ITEM_PIPELINES

    默認(rèn): {}

    保存項(xiàng)目中啟用的pipeline及其順序的字典。該字典默認(rèn)為空,值(value)任意。 不過值(value)習(xí)慣設(shè)定在0-1000范圍內(nèi)

  • ITEM_PIPELINES_BASE

    默認(rèn): {}

    保存項(xiàng)目中默認(rèn)啟用的pipeline的字典。 永遠(yuǎn)不要在項(xiàng)目中修改該設(shè)定,而是修改 ITEM_PIPELINES

  • LOG_ENABLED

    默認(rèn): True

    是否啟用logging

  • LOG_ENCODING

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

    logging使用的編碼。

  • LOG_FILE

    默認(rèn): None

    logging輸出的文件名。如果為None,則使用標(biāo)準(zhǔn)錯(cuò)誤輸出(standard error)。

  • LOG_FORMAT

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

    日志的數(shù)據(jù)格式

  • LOG_DATEFORMAT

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

    日志的日期格式

  • LOG_LEVEL

    默認(rèn): 'DEBUG'

    log的最低級別??蛇x的級別有: CRITICAL、 ERROR、WARNING、INFO、DEBUG

  • LOG_STDOUT

    默認(rèn): False

    如果為 True ,進(jìn)程所有的標(biāo)準(zhǔn)輸出(及錯(cuò)誤)將會被重定向到log中

  • RANDOMIZE_DOWNLOAD_DELAY

    默認(rèn): True

    如果啟用,當(dāng)從相同的網(wǎng)站獲取數(shù)據(jù)時(shí),Scrapy將會等待一個(gè)隨機(jī)的值 (0.5到1.5之間的一個(gè)隨機(jī)值 * DOWNLOAD_DELAY)

    該隨機(jī)值降低了crawler被檢測到(接著被block)的機(jī)會。某些網(wǎng)站會分析請求, 查找請求之間時(shí)間的相似性

  • REDIRECT_MAX_TIMES

    默認(rèn): 20

    定義request允許重定向的最大次數(shù)。超過該限制后該request直接返回獲取到的結(jié)果。 對某些任務(wù)我們使用Firefox默認(rèn)值

  • ROBOTSTXT_OBEY

    默認(rèn): False

    是否遵循robots協(xié)議

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

    用于爬取的調(diào)度器

  • SPIDER_MIDDLEWARES

    默認(rèn): {}

    保存項(xiàng)目中啟用的下載中間件及其順序的字典

  • USER_AGENT

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

    爬取的默認(rèn)User-Agent,除非被覆蓋

Scrapy默認(rèn)BASE設(shè)置

scrapy對某些內(nèi)部組件進(jìn)行了默認(rèn)設(shè)置,這些組件通常情況下是不能被修改的,但是我們在自定義了某些組件以后,比如我們設(shè)置了自定義的middleware中間件,需要按照一定的順序把他添加到組件之中,這個(gè)時(shí)候需要參考scrapy的默認(rèn)設(shè)置,因?yàn)檫@個(gè)順序會影響scrapy的執(zhí)行,下面列出了scrapy的默認(rèn)基礎(chǔ)設(shè)置

注意:如果你想要修改以下的某些設(shè)置,應(yīng)該避免直接修改下列內(nèi)容,而是修改其對應(yīng)的自定義內(nèi)容,例如,你想修改下面的DOWNLOADER_MIDDLEWARES_BASE的內(nèi)容,你應(yīng)該去修改DOWNLOADER_MIDDLEWARES這個(gè)內(nèi)容,只是去掉了_BASE而已,其他的也是類似這樣

  • DOWNLOADER_MIDDLEWARES_BASE

默認(rèn):

{
? ?'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100,
? ?'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300,
? ?'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350,
? ?'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
? ?'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
? ?'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 550,
? ?'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.chunked.ChunkedTransferMiddleware': 830,
? ?'scrapy.downloadermiddlewares.stats.DownloaderStats': 850,
? ?'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900,
}

包含Scrapy默認(rèn)啟用的下載中間件的字典。 永遠(yuǎn)不要在項(xiàng)目中修改該設(shè)定,而是修改 DOWNLOADER_MIDDLEWARES 。

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

保存項(xiàng)目中默認(rèn)啟用的spider中間件的字典。 永遠(yuǎn)不要在項(xiàng)目中修改該設(shè)定,而是修改 SPIDER_MIDDLEWARES 。 EXTENSIONS_BASE

默認(rèn):

{
? ?'scrapy.extensions.corestats.CoreStats': 0,
? ?'scrapy.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,
}

可用的插件列表。需要注意,有些插件需要通過設(shè)定來啟用。默認(rèn)情況下, 該設(shè)定包含所有穩(wěn)定(stable)的內(nèi)置插件。

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

保存項(xiàng)目中默認(rèn)啟用的下載處理器(request downloader handler)的字典。 永遠(yuǎn)不要在項(xiàng)目中修改該設(shè)定,而是修改 DOWNLOADER_HANDLERS 。

如果需要關(guān)閉上面的下載處理器,您必須在項(xiàng)目中的 DOWNLOAD_HANDLERS 設(shè)定中設(shè)置該處理器,并為其賦值為 None 。

說明

即使我們添加了一些我們自定義的組件,scrapy默認(rèn)的base設(shè)置依然會被應(yīng)用,這樣說可能會一頭霧水,簡單地例子:

假如我們在middlewares.py文件中定義了一個(gè)中間件,名稱為MyMiddleware,我們把它添加到settings.py文件里面的DOWNLOADER_MIDDLEWARES,且他的執(zhí)行順序我們設(shè)置為450,最終的設(shè)置內(nèi)容就是:

DOWNLOADER_MIDDLEWARES = {
? ?'cnblog.middlewares.MyMiddleware':450,
}

我們再來看一下默認(rèn)的DOWNLOADER_MIDDLEWARES_BASE的內(nèi)容:

DOWNLOADER_MIDDLEWARES_BASE ={
? ?'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100,
? ?'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300,
? ?'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350,
? ?'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
? ?'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
? ?'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 550,
? ?'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.chunked.ChunkedTransferMiddleware': 830,
? ?'scrapy.downloadermiddlewares.stats.DownloaderStats': 850,
? ?'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900,
}

這個(gè)時(shí)候,scrapy下載中間件的最終的執(zhí)行順序就是,把DOWNLOADER_MIDDLEWARESDOWNLOADER_MIDDLEWARES_BASE里面的中間件按照順序執(zhí)行,100>300>350>400>450>500>550>580>590>600>700>750>830>850>900且全部執(zhí)行,并不會因?yàn)槲覀兌x了一個(gè)中間件,而使默認(rèn)的中間件失效,也就是說,最終的結(jié)果其實(shí)是合并執(zhí)行。

如果我們不想應(yīng)用某一個(gè)默認(rèn)的中間件,假如'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,那么,就應(yīng)該在DOWNLOADER_MIDDLEWARES里面把它的值設(shè)置為None,像下面這樣:

DOWNLOADER_MIDDLEWARES = {
? ?'cnblog.middlewares.MyMiddleware':450,
? ?'scrapy.downloadermiddlewares.retry.RetryMiddleware':None,
}


21. Scrapy 框架 - settings的評論 (共 條)

分享到微博請遵守國家法律
怀集县| 平遥县| 中阳县| 涡阳县| 襄樊市| 武城县| 洪江市| 泰安市| 张北县| 南陵县| 德兴市| 台安县| 兴安盟| 镇平县| 宜州市| 大理市| 惠水县| 荥阳市| 永丰县| 白银市| 徐汇区| 东平县| 南郑县| 犍为县| 新野县| 黎城县| 石阡县| 满城县| 梁河县| 平舆县| 郴州市| 永丰县| 射洪县| 同德县| 姜堰市| 五大连池市| 吉木萨尔县| 久治县| 体育| 集贤县| 饶平县|