<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 核心API > 譯者:[OSGeo 中國](https://www.osgeo.cn/) 0.15 新版功能. 本節記錄了Scrapy核心API,它是為擴展和中間件的開發人員設計的。 ## 爬蟲API Scrapy API的主要入口點是 [`Crawler`](#scrapy.crawler.Crawler "scrapy.crawler.Crawler") 對象,通過 `from_crawler` 類方法。這個對象提供對所有Scrapy核心組件的訪問,它是擴展訪問它們并將其功能連接到Scrapy的唯一方法。 擴展管理器負責加載和跟蹤已安裝的擴展,并通過 [`EXTENSIONS`](settings.html#std:setting-EXTENSIONS) 包含所有可用擴展名及其順序的字典的設置,類似于 [configure the downloader middlewares](downloader-middleware.html#topics-downloader-middleware-setting) . ```py class scrapy.crawler.Crawler(spidercls, settings) ``` 爬蟲對象必須用 [`scrapy.spiders.Spider`](spiders.html#scrapy.spiders.Spider "scrapy.spiders.Spider") 子類和A [`scrapy.settings.Settings`](#scrapy.settings.Settings "scrapy.settings.Settings") 對象。 ```py settings ``` 此爬網程序的設置管理器。 這被擴展和中間軟件用來訪問這個爬蟲程序的碎片設置。 有關 Scrapy 設置的介紹,請參見 [設置](settings.html#topics-settings) . 對于API見 [`Settings`](#scrapy.settings.Settings "scrapy.settings.Settings") 類。 ```py signals ``` 這個爬蟲的信號管理器。 這被擴展和中間商用來將自己連接到零碎的功能中。 有關信號的介紹,請參見 [信號](signals.html#topics-signals) . 對于API見 `SignalManager` 類。 ```py stats ``` 這個爬蟲的統計收集程序。 這用于從擴展和中間軟件記錄其行為的統計信息,或訪問由其他擴展收集的統計信息。 有關stats集合的介紹,請參見 [統計數據集合](stats.html#topics-stats) . 對于API見 [`StatsCollector`](#scrapy.statscollectors.StatsCollector "scrapy.statscollectors.StatsCollector") 類。 ```py extensions ``` 跟蹤已啟用擴展的擴展管理器。 大多數擴展不需要訪問這個屬性。 有關擴展名的介紹和scrapy上可用擴展名的列表,請參見 [擴展](extensions.html#topics-extensions) . ```py engine ``` 執行引擎,它協調調度程序、下載程序和spider之間的核心爬行邏輯。 有些擴展可能希望訪問scrapy引擎,檢查或修改下載程序和調度程序的行為,盡管這是一種高級用法,而且這個API還不穩定。 ```py spider ``` Spider 當前正在被爬行。這是構建爬蟲程序時提供的 Spider 類的實例,它是在 [`crawl()`](#scrapy.crawler.Crawler.crawl "scrapy.crawler.Crawler.crawl") 方法。 ```py crawl(*args, **kwargs) ``` 通過用給定的 `args` 和 `kwargs` 參數,同時設置運行中的執行引擎。 返回在爬網完成時激發的延遲。 ## 設置API ```py scrapy.settings.SETTINGS_PRIORITIES ``` 設置Scrapy中使用的默認設置優先級的鍵名稱和優先級級別的字典。 每個項目定義一個設置入口點,為其提供標識代碼名和整數優先級。在 [`Settings`](#scrapy.settings.Settings "scrapy.settings.Settings") 類。 ```py SETTINGS_PRIORITIES = { 'default': 0, 'command': 10, 'project': 20, 'spider': 30, 'cmdline': 40, } ``` 有關每個設置源的詳細說明,請參閱: [設置](settings.html#topics-settings) . ```py scrapy.settings.get_settings_priority(priority) ``` 在中查找給定字符串優先級的小助手函數 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") 并返回其數值,或直接返回給定的數值優先級。 ```py class scrapy.settings.Settings(values=None, priority='project') ``` 基類:[`scrapy.settings.BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings") 此對象存儲內部組件配置的碎片設置,并可用于任何進一步的自定義。 它是一個直接的子類,支持 [`BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings") . 另外,在實例化這個類之后,新對象將具有上面描述的全局默認設置 [內置設置參考](settings.html#topics-settings-ref) 已經填充。 ```py class scrapy.settings.BaseSettings(values=None, priority='project') ``` 此類的實例的行為類似于字典,但將優先級與其 `(key, value)` 對,并且可以凍結(即標記為不可變)。 鍵值項可以在初始化時通過 `values` 他們會接受 `priority` 水平(除非 `values` 已經是的實例 [`BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings") 在這種情況下,將保留現有的優先級)。如果 `priority` 參數是字符串,優先級名稱將在 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") . 否則,應提供特定的整數。 創建對象后,可以使用 [`set()`](#scrapy.settings.BaseSettings.set "scrapy.settings.BaseSettings.set") 方法,并且可以使用字典的方括號符號或 [`get()`](#scrapy.settings.BaseSettings.get "scrapy.settings.BaseSettings.get") 實例的方法及其值轉換變量。請求存儲的密鑰時,將檢索具有最高優先級的值。 ```py copy() ``` 對當前設置進行深度復制。 此方法返回 [`Settings`](#scrapy.settings.Settings "scrapy.settings.Settings") 類,使用相同的值及其優先級填充。 對新對象的修改不會反映在原始設置上。 ```py copy_to_dict() ``` 復制當前設置并轉換為dict。 此方法返回一個新的dict,該dict使用與當前設置相同的值及其優先級填充。 對返回的dict的修改不會反映在原始設置上。 例如,此方法對于在Scrapy Shell中打印設置很有用。 ```py freeze() ``` 禁用對當前設置的進一步更改。 調用此方法后,設置的當前狀態將變為不可變。嘗試通過 [`set()`](#scrapy.settings.BaseSettings.set "scrapy.settings.BaseSettings.set") 方法及其變體是不可能的,將被警告。 ```py frozencopy() ``` 返回當前設置的不可變副本。 A的別名 [`freeze()`](#scrapy.settings.BaseSettings.freeze "scrapy.settings.BaseSettings.freeze") 調用返回的對象 [`copy()`](#scrapy.settings.BaseSettings.copy "scrapy.settings.BaseSettings.copy") . ```py get(name, default=None) ``` 在不影響其原始類型的情況下獲取設置值。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getbool(name, default=False) ``` 獲取設置值作為布爾值。 `1` , `'1'` 是真的 `` and `` “真” `` return `` 對 [``](#id1), while `` 0 [``](#id3), `` “0” [``](#id5), `` 假 [``](#id7), `` “假” `` and `` 沒有 `` return `` 假`。 例如,通過設置為的環境變量填充的設置 `'0'` 將返回 `False` 使用此方法時。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getdict(name, default=None) ``` 獲取一個設置值作為字典。如果設置原始類型為字典,則返回其副本。如果它是一個字符串,它將作為JSON字典進行計算。如果它是一個 [`BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings") 實例本身,它將被轉換為一個字典,其中包含所有當前設置值,這些值將由返回 [`get()`](#scrapy.settings.BaseSettings.get "scrapy.settings.BaseSettings.get") 以及丟失有關優先級和可變性的所有信息。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getfloat(name, default=0.0) ``` 以浮點形式獲取設置值。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getint(name, default=0) ``` 以int形式獲取設置值。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getlist(name, default=None) ``` 以列表形式獲取設置值。如果設置的原始類型是列表,則將返回其副本。如果是一個字符串,它將被“,”拆分。 例如,通過設置為的環境變量填充的設置 `'one,two'` 使用此方法時將返回一個列表['one'、'two']。 | 參數: | * **name** (_string_) -- 設置名稱 * **default** (_any_) -- 如果找不到設置,則返回的值 | | --- | --- | ```py getpriority(name) ``` 返回設置的當前數字優先級值,或 `None` 如果給定 `name` 不存在。 | 參數: | **name** (_string_) -- 設置名稱 | | --- | --- | ```py getwithbase(name) ``` 獲取類似字典的設置及其 &lt;cite&gt;_BASE&lt;/cite&gt; 對應的。 | 參數: | **name** (_string_) -- 類似字典的設置的名稱 | | --- | --- | ```py maxpriority() ``` 返回所有設置中存在的最高優先級的數值,或返回 `default` 從 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") 如果沒有存儲設置。 ```py set(name, value, priority='project') ``` 存儲具有給定優先級的鍵/值屬性。 應填充設置 _before_ 配置爬蟲對象(通過 `configure()` 方法),否則它們不會有任何效果。 | 參數: | * **name** (_string_) -- 設置名稱 * **value** (_any_) -- 要與設置關聯的值 * **priority** (_string_ _or_ _int_) -- 設置的優先級。應該是 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") 或整數 | | --- | --- | ```py setmodule(module, priority='project') ``` 存儲具有給定優先級的模塊的設置。 這是一個調用 [`set()`](#scrapy.settings.BaseSettings.set "scrapy.settings.BaseSettings.set") 對于每個全局聲明的大寫變量 `module` 提供的 `priority` . | 參數: | * **module** (_module object_ _or_ _string_) -- 模塊或模塊路徑 * **priority** (_string_ _or_ _int_) -- 設置的優先級。應該是 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") 或整數 | | --- | --- | ```py update(values, priority='project') ``` 存儲具有給定優先級的鍵/值對。 這是一個調用 [`set()`](#scrapy.settings.BaseSettings.set "scrapy.settings.BaseSettings.set") 每一項 `values` 提供的 `priority` . 如果 `values` 是一個字符串,它被假定為JSON編碼并被解析為一個dict `json.loads()` 第一。如果是 [`BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings") 例如,每個鍵的優先級將被使用,并且 `priority` 參數被忽略。這允許使用單個命令插入/更新具有不同優先級的設置。 | 參數: | * **values** (dict or string or [`BaseSettings`](#scrapy.settings.BaseSettings "scrapy.settings.BaseSettings")) -- 設置名稱和值 * **priority** (_string_ _or_ _int_) -- 設置的優先級。應該是 [`SETTINGS_PRIORITIES`](#scrapy.settings.SETTINGS_PRIORITIES "scrapy.settings.SETTINGS_PRIORITIES") 或整數 | | --- | --- | ## SpiderLoader API ```py class scrapy.loader.SpiderLoader ``` 這個類負責檢索和處理整個項目中定義的 Spider 類。 通過在 [`SPIDER_LOADER_CLASS`](settings.html#std:setting-SPIDER_LOADER_CLASS) 項目設置。他們必須全面實施 `scrapy.interfaces.ISpiderLoader` 保證無誤執行的接口。 ```py from_settings(settings) ``` Scrapy使用該類方法創建該類的實例。它使用當前的項目設置調用,并加載在 [`SPIDER_MODULES`](settings.html#std:setting-SPIDER_MODULES) 設置。 | 參數: | **settings** ([`Settings`](#scrapy.settings.Settings "scrapy.settings.Settings") instance) -- 項目設置 | | --- | --- | ```py load(spider_name) ``` 獲取具有給定名稱的 Spider 類。它將在先前加載的spider中查找具有名稱的spider類 `spider_name` 如果找不到,將引發keyerror。 | 參數: | **spider_name** (_str_) -- Spider 類名 | | --- | --- | ```py list() ``` 獲取項目中可用 Spider 的名稱。 ```py find_by_request(request) ``` 列出能夠處理給定請求的 Spider 的名稱。將嘗試將請求的URL與 Spider 的域相匹配。 | 參數: | **request** ([`Request`](request-response.html#scrapy.http.Request "scrapy.http.Request") instance) -- 查詢請求 | | --- | --- | ## 信號API ## 統計收集器API 在 [`scrapy.statscollectors`](stats.html#module-scrapy.statscollectors "scrapy.statscollectors: Stats Collectors") 模塊和它們都實現由 [`StatsCollector`](#scrapy.statscollectors.StatsCollector "scrapy.statscollectors.StatsCollector") 類(它們都從中繼承)。 ```py class scrapy.statscollectors.StatsCollector ``` ```py get_value(key, default=None) ``` 返回給定stats鍵的值,如果該鍵不存在,則返回默認值。 ```py get_stats() ``` 以dict形式獲取當前運行的spider的所有統計信息。 ```py set_value(key, value) ``` 為給定的stats鍵設置給定值。 ```py set_stats(stats) ``` 使用傳入的dict重寫當前狀態 `stats` 爭論。 ```py inc_value(key, count=1, start=0) ``` 假定給定的起始值(未設置時),按給定的計數遞增給定的stats鍵的值。 ```py max_value(key, value) ``` 僅當同一個鍵的當前值小于值時,才為給定鍵設置給定值。如果給定鍵沒有當前值,則始終設置該值。 ```py min_value(key, value) ``` 僅當同一鍵的當前值大于值時,才為給定鍵設置給定值。如果給定鍵沒有當前值,則始終設置該值。 ```py clear_stats() ``` 清除所有統計。 以下方法不是stats集合API的一部分,而是在實現自定義stats收集器時使用的: ```py open_spider(spider) ``` 打開給定的 Spider 以收集統計信息。 ```py close_spider(spider) ``` 關閉給定的 Spider 。調用之后,就不能訪問或收集更多的特定統計信息。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看