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