BaseSpider在scrapy中的使用

2021-08-15 20:39:40 字數 1172 閱讀 5990

scrapy中繼承自basespider的爬蟲是不被推薦的,如下所示:

[python] 

view plain

copy

from

scrapy.spider 

import

basespider  

class

negativecommentscrapy(basespider):  

...  

檢視scrapy的原始碼,在scrapy.spider模組中可以看到basespider的生成方式,他是通過如下方式構造的:

[python] 

view plain

copy

basespider = create_deprecated_class(

'basespider'

, spider)  

create_deprecated_class(arg0, arg1)函式是用於構建「不推薦類」的函式

,由該函式構建的類(basespider)的子類(negativecommentscrapy)會丟擲warning,以此提醒開發者注意。create_deprecated_class(arg0, arg1)函式來自scrapy.utils.deprecate模組。它的基本形式是:

[python] 

view plain

copy

class

oldname(someclass):  

# ...

class

newname(someclass):  

# ...

oldname = create_deprecated_class('oldname'

, newname)  

oldname 即代表了「禁用類」,可以使其子類丟擲警告(warning),newname的子類也被看做是oldname 的子類。這相當於實現了類的重新命名。將oldname重新命名成了newname,用在此處即表示將basespider重新命名成了spider,所以basespider要禁用了。

總結:1、如果使用者繼承自oldname(basespider),會丟擲異常。

2、如果sub是 newname(spider)的乙個子類,那麼``issubclass(sub, oldname)`` or ``isinstance(sub(), oldname)``都會返回true

windows系統下搭建爬蟲框架scrapy

摘要 本機環境為windows 7,64位系統,python 2.7 裝成了32位的了 1.安裝twisted 安裝完成後,你會在c python27 lib site packages目錄下看到twisted資料夾 2.安裝zope.inte ce 很多版本,根據windows位數,python版...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...