冰解的破-Scrapy

scrapy

Scrapy庆捺,Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架屁魏,用于抓取web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)滔以。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘氓拼、監(jiān)測和自動化測試你画。

Scrapy吸引人的地方在于它是一個框架,任何人都可以根據(jù)需求方便的修改桃漾。它也提供了多種類型爬蟲的基類坏匪,如BaseSpider、sitemap爬蟲等撬统,最新版本又提供了web2.0爬蟲的支持剥槐。

Scrap,是碎片的意思宪摧,這個Python的爬蟲框架叫Scrapy。

學(xué)習(xí)整理:

  • scrapy架構(gòu)颅崩?

先科普下什么是爬蟲几于,爬蟲的本質(zhì)就是將互聯(lián)網(wǎng)網(wǎng)頁(數(shù)據(jù))下載下來的程序。


爬蟲

通過對互聯(lián)網(wǎng)無數(shù)個url數(shù)據(jù)的下載沿后,url之間可能又有關(guān)聯(lián)沿彭,于是形成了猶如蜘蛛網(wǎng)狀的結(jié)構(gòu),而爬蟲就守在這張大網(wǎng)之上尖滚,因此我們通常又將爬蟲成為蜘蛛喉刘。


spider

爬蟲的基本結(jié)構(gòu):


基本爬蟲架構(gòu)

由上圖可以看出爬蟲一般由爬蟲調(diào)度器、URL管理器漆弄、網(wǎng)頁下載器睦裳、網(wǎng)頁解析器、數(shù)據(jù)存儲這幾個模塊組成撼唾。
  • 爬蟲調(diào)度器主要是對url管理器廉邑、網(wǎng)頁下載器網(wǎng)頁解析器進(jìn)行管理。
  • URL管理器主要通過初始url及網(wǎng)頁解析器獲得的url進(jìn)行存儲管理倒谷,并為調(diào)度器提供接口蛛蒙,為網(wǎng)頁下載器提供下載入口。
  • 網(wǎng)頁下載器主要功能就是下載該url下的網(wǎng)頁數(shù)據(jù)(源碼)
  • 網(wǎng)頁解析器一方面解析出我們需要的價值數(shù)據(jù)渤愁,一方面又將網(wǎng)頁下載器下載數(shù)據(jù)中的url存儲到url管理器中牵祟。
  • 數(shù)據(jù)存儲是將網(wǎng)頁解析器的解析的價值數(shù)據(jù)存儲到內(nèi)存、數(shù)據(jù)庫抖格、文件等诺苹。

scrapy data flow(流程圖)


scrapy流程

Scrapy數(shù)據(jù)流是由執(zhí)行的核心引擎(engine)控制咕晋,流程是這樣的:

  1. 爬蟲引擎獲得初始請求開始抓取。
  2. 爬蟲引擎開始請求調(diào)度程序筝尾,并準(zhǔn)備對下一次的請求進(jìn)行抓取捡需。
  3. 爬蟲調(diào)度器返回下一個請求給爬蟲引擎。
  4. 引擎請求發(fā)送到下載器筹淫,通過下載中間件下載網(wǎng)絡(luò)數(shù)據(jù)站辉。
  5. 一旦下載器完成頁面下載,將下載結(jié)果返回給爬蟲引擎损姜。
  6. 引擎將下載器的響應(yīng)通過中間件返回給爬蟲進(jìn)行處理饰剥。
  7. 爬蟲處理響應(yīng),并通過中間件返回處理后的items摧阅,以及新的請求給引擎汰蓉。
  8. 引擎發(fā)送處理后的items到項(xiàng)目管道,然后把處理結(jié)果返回給調(diào)度器棒卷,調(diào)度器計(jì)劃處理下一個請求抓取顾孽。
  9. 重復(fù)該過程(繼續(xù)步驟1),直到爬取完所有的url請求比规。

單獨(dú)介紹下scrapy各個組件:

  • 爬蟲引擎(ENGINE)
    爬蟲引擎負(fù)責(zé)控制各個組件之間的數(shù)據(jù)流若厚,當(dāng)某些操作觸發(fā)事件后都是通過engine來處理。
  • 調(diào)度器
    調(diào)度接收來engine的請求并將請求放入隊(duì)列中蜒什,并通過事件返回給engine测秸。
  • 下載器
    通過engine請求下載網(wǎng)絡(luò)數(shù)據(jù)并將結(jié)果響應(yīng)給engine。
  • Spider
    Spider發(fā)出請求灾常,并處理engine返回給它下載器響應(yīng)數(shù)據(jù)霎冯,以items和規(guī)則內(nèi)的數(shù)據(jù)請求(urls)返回給engine。
  • 管道項(xiàng)目(item pipeline)
    負(fù)責(zé)處理engine返回spider解析后的數(shù)據(jù)钞瀑,并且將數(shù)據(jù)持久化沈撞,例如將數(shù)據(jù)存入數(shù)據(jù)庫或者文件。
  • 下載中間件
    下載中間件是engine和下載器交互組件雕什,以鉤子(插件)的形式存在关串,可以代替接收請求、處理數(shù)據(jù)的下載以及將結(jié)果響應(yīng)給engine监徘。
  • spider中間件
    spider中間件是engine和spider之間的交互組件晋修,以鉤子(插件)的形式存在,可以代替處理response以及返回給engine items及新的請求集凰盔。

scrapy項(xiàng)目結(jié)構(gòu):


項(xiàng)目結(jié)構(gòu)

參見:
Scrapy爬蟲(二):爬蟲簡介:https://blog.csdn.net/yancey_blog/article/details/53887924
Scrapy爬蟲(三):scrapy架構(gòu)及原理:https://blog.csdn.net/yancey_blog/article/details/53888473

TO BE CONTINUED ......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墓卦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子户敬,更是在濱河造成了極大的恐慌落剪,老刑警劉巖睁本,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忠怖,居然都是意外死亡呢堰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門凡泣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枉疼,“玉大人,你說我怎么就攤上這事鞋拟÷钗” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵贺纲,是天一觀的道長航闺。 經(jīng)常有香客問我,道長猴誊,這世上最難降的妖魔是什么潦刃? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮懈叹,結(jié)果婚禮上乖杠,老公的妹妹穿的比我還像新娘。我一直安慰自己项阴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布笆包。 她就那樣靜靜地躺著环揽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庵佣。 梳的紋絲不亂的頭發(fā)上歉胶,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音巴粪,去河邊找鬼通今。 笑死,一個胖子當(dāng)著我的面吹牛肛根,可吹牛的內(nèi)容都是我干的辫塌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼派哲,長吁一口氣:“原來是場噩夢啊……” “哼臼氨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芭届,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤储矩,失蹤者是張志新(化名)和其女友劉穎感耙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體持隧,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡即硼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屡拨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片只酥。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖洁仗,靈堂內(nèi)的尸體忽然破棺而出层皱,到底是詐尸還是另有隱情,我是刑警寧澤赠潦,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布叫胖,位于F島的核電站,受9級特大地震影響她奥,放射性物質(zhì)發(fā)生泄漏瓮增。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一哩俭、第九天 我趴在偏房一處隱蔽的房頂上張望绷跑。 院中可真熱鬧,春花似錦凡资、人聲如沸砸捏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垦藏。三九已至,卻和暖如春伞访,著一層夾襖步出監(jiān)牢的瞬間掂骏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工厚掷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弟灼,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓冒黑,卻偏偏與公主長得像田绑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抡爹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容