scrapy 2.3 填充設(shè)置

2021-06-10 10:29 更新

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

  1. 命令行選項(最優(yōu)先)
  2. 每個蜘蛛的設(shè)置
  3. 項目設(shè)置模塊
  4. 每個命令的默認(rèn)設(shè)置
  5. 默認(rèn)全局設(shè)置(優(yōu)先級較低)

這些設(shè)置源的填充是在內(nèi)部處理的,但是可以使用API調(diào)用進(jìn)行手動處理。見 設(shè)置API 供參考的主題。

下面將更詳細(xì)地描述這些機(jī)制。

1、命令行選項

命令行提供的參數(shù)是最優(yōu)先的參數(shù),覆蓋了任何其他選項。您可以使用 -s (或) --set )命令行選項。

例子::

scrapy crawl myspider -s LOG_FILE=scrapy.log

2、每個蜘蛛的設(shè)置

蜘蛛(見 蜘蛛 章節(jié)供參考)可以定義它們自己的設(shè)置,這些設(shè)置將優(yōu)先并覆蓋項目設(shè)置。他們可以通過設(shè)置 ?custom_settings? 屬性:

class MySpider(scrapy.Spider):
    name = 'myspider'

    custom_settings = {
        'SOME_SETTING': 'some value',
    }

3、項目設(shè)置模塊

項目設(shè)置模塊是碎屑項目的標(biāo)準(zhǔn)配置文件,它將填充大部分自定義設(shè)置。對于標(biāo)準(zhǔn)的Scrapy項目,這意味著您將在 ?settings.py? 為項目創(chuàng)建的文件。

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

各 Scrapy tool 命令可以有自己的默認(rèn)設(shè)置,這將覆蓋全局默認(rèn)設(shè)置。這些自定義命令設(shè)置在 ?default_settings? 命令類的屬性。

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

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

導(dǎo)入路徑和類

VERSION 新版功能.

當(dāng)設(shè)置引用要由scray導(dǎo)入的可調(diào)用對象(如類或函數(shù))時,可以使用兩種不同的方法指定該對象:

  • 作為包含該對象的導(dǎo)入路徑的字符串
  • 作為對象本身

例如:

from mybot.pipelines.validate import ValidateMyItem
ITEM_PIPELINES = {
    # passing the classname...
    ValidateMyItem: 300,
    # ...equals passing the class path
    'mybot.pipelines.validate.ValidateMyItem': 300,
}

注解

不支持傳遞不可調(diào)用的對象。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號