Python爬蟲之爬蟲框架概述

一,pyspider

pyspider的設計基礎是:以python腳本驅動的抓取環模型爬蟲

通過python腳本進行結構化信息的提取,follow鏈接調度抓取控制,實現最大的靈活性

通過web化的腳本編寫、調試環境。web展現調度狀態

抓取環模型成熟穩定,模塊間相互獨立,通過消息隊列連接,從單進程到多機分布式靈活拓展

pyspider的架構主要分為 scheduler(調度器), fetcher(抓取器), processor(腳本執行):

各個組件間使用消息隊列連接,除了scheduler是單點的,fetcher 和 processor 都是可以多實例分布式部署的。 scheduler 負責整體的調度控制

任務由 scheduler 發起調度,fetcher 抓取網頁內容, processor 執行預先編寫的python腳本,輸出結果或產生新的提鏈任務(發往 scheduler),形成閉環。

每個腳本可以靈活使用各種python庫對頁面進行解析,使用框架API控制下一步抓取動作,通過設置回調控制解析動作。

二,Scrapy

Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。

Scrapy 使用了 Twisted?異步網絡庫來處理網絡通訊。整體架構大致如下


Scrapy主要包括了以下組件:

引擎(Scrapy): 用來處理整個系統的數據流處理, 觸發事務(框架核心)

調度器(Scheduler): 用來接受引擎發過來的請求, 壓入隊列中, 并在引擎再次請求的時候返回. 可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列, 由它來決定下一個要抓取的網址是什么, 同時去除重復的網址

下載器(Downloader): 用于下載網頁內容, 并將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上的)

爬蟲(Spiders): 爬蟲是主要干活的, 用于從特定的網頁中提取自己需要的信息, 即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面

項目管道(Pipeline): 負責處理爬蟲從網頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當頁面被爬蟲解析后,將被發送到項目管道,并經過幾個特定的次序處理數據。

下載器中間件(Downloader Middlewares): 位于Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應。

爬蟲中間件(Spider Middlewares): 介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應輸入和請求輸出。

調度中間件(Scheduler Middewares): 介于Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。

Scrapy運行流程大概如下

首先,引擎從調度器中取出一個鏈接(URL)用于接下來的抓取

引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,并封裝成應答包(Response)

然后,爬蟲解析Response

若是解析出實體(Item),則交給實體管道進行進一步的處理。

若是解析出的是鏈接(URL),則把URL交給Scheduler等待抓取

pysipder環境搭建:

http://docs.pyspider.org/en/latest/

pip install pyspider

首先要安裝phantomjs

安裝好了之后命令行輸入pyspider all啟動

http://localhost:5000

支持多線程爬取、JS動態解析,提供了可操作界面、出錯重試、定時爬取等等的功能,使用非常人性化。

scrapy環境搭建:

pip installpyOpenSSL

安裝pywin32

https://sourceforge.net/projects/pywin32/files/pywin32/

import win32com驗證

pip install lxml

pip install scrapy

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容

  • 本文希望達到以下目標: 簡要介紹Scarpy 閱讀官網入門文檔并實現文檔中的范例 使用Scarpy優豆瓣爬蟲的抓取...
    Andrew_liu閱讀 82,112評論 30 177
  • PySpider PySpider詳細介紹 PySipder是一個Python爬蟲程序 演示地址:http://d...
    abeb6ca9bb86閱讀 1,824評論 0 2
  • 我的旁邊是希爾頓酒店,酒店旁邊有一家“騙子”公司。門口一對老外情侶大口的吃著冰激淋樣的甜點,我找了一個很舒服的景觀...
    探尋四季閱讀 239評論 0 0
  • 古人把太陽視為天之陽,把艾視為地之陽,可見艾草是秉陽氣而生的!故艾灸是天賜人間的寶貴禮物,它給女人帶來的“福利...
    TaoY我在新加坡當媽媽閱讀 584評論 1 2
  • 1. 感恩和同學們聚會,同學們給我紅包。 2. 感恩今天開工,收到老板的開工紅包。 3. 感恩今天駕車去上班路上通...
    詩羚閱讀 274評論 0 2