Scrapy框架的簡單介紹

Scrapy框架
Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)趁猴、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架珊泳,用途非常廣泛。

框架的力量胯府,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲秋秤,用來抓取網(wǎng)頁內(nèi)容以及各種圖片宏粤,非常之方便。

Scrapy架構(gòu)圖


scrapy框架.png

Scrapy Engine(引擎): 負(fù)責(zé)Spider灼卢、ItemPipeline绍哎、Downloader、Scheduler中間的通訊鞋真,信號崇堰、數(shù)據(jù)傳遞等。

Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請求涩咖,并按照一定的方式進(jìn)行整理排列赶袄,入隊(duì),當(dāng)引擎需要時(shí)抠藕,交還給引擎。

Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請求蒋困,并將其獲取到的Responses交還給Scrapy Engine(引擎)盾似,由引擎交給Spider來處理,

Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù)零院,并將需要跟進(jìn)的URL提交給引擎溉跃,再次進(jìn)入Scheduler(調(diào)度器),

Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item告抄,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析撰茎、過濾、存儲(chǔ)等)的地方.

Downloader Middlewares(下載中間件):你可以當(dāng)作是一個(gè)可以自定義擴(kuò)展下載功能的組件打洼。

Spider Middlewares(Spider中間件):你可以理解為是一個(gè)可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests)

Scrapy的運(yùn)作流程

代碼寫好龄糊,程序開始運(yùn)行...

1 引擎:Hi!Spider, 你要處理哪一個(gè)網(wǎng)站募疮?

2 Spider:老大要我處理xxxx.com炫惩。

3 引擎:你把第一個(gè)需要處理的URL給我吧。

4 Spider:給你阿浓,第一個(gè)URL是xxxxxxx.com他嚷。

5 引擎:Hi!調(diào)度器芭毙,我這有request請求你幫我排序入隊(duì)一下筋蓖。

6 調(diào)度器:好的,正在處理你等一下退敦。

7 引擎:Hi粘咖!調(diào)度器,把你處理好的request請求給我苛聘。

8 調(diào)度器:給你涂炎,這是我處理好的request

9 引擎:Hi!下載器设哗,你按照老大的下載中間件的設(shè)置幫我下載一下這個(gè)request請求

10 下載器:好的唱捣!給你,這是下載好的東西网梢。(如果失斦痃浴:sorry,這個(gè)request下載失敗了战虏。然后引擎告訴調(diào)度器拣宰,這個(gè)request下載失敗了,你記錄一下烦感,我們待會(huì)兒再下載)

11 引擎:Hi巡社!Spider,這是下載好的東西手趣,并且已經(jīng)按照老大的下載中間件處理過了晌该,你自己處理一下(注意!這兒responses默認(rèn)是交給def parse()這個(gè)函數(shù)處理的)

12 Spider:(處理完畢數(shù)據(jù)之后對于需要跟進(jìn)的URL),Hi朝群!引擎燕耿,我這里有兩個(gè)結(jié)果,這個(gè)是我需要跟進(jìn)的URL姜胖,還有這個(gè)是我獲取到的Item數(shù)據(jù)誉帅。

13 引擎:Hi !管道 我這兒有個(gè)item你幫我處理一下右莱!調(diào)度器蚜锨!這是需要跟進(jìn)URL你幫我處理下。然后從第四步開始循環(huán)隧出,直到獲取完老大需要全部信息踏志。

14 管道``調(diào)度器:好的,現(xiàn)在就做胀瞪!

Scrapy的安裝介紹
Scrapy框架官方網(wǎng)址:https://doc.scrapy.org/en/latest/

Scrapy中文維護(hù)站點(diǎn):https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

Ubuntu 需要9.10或以上版本安裝方式
Python 2 / 3
安裝非Python的依賴 sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
通過pip 安裝 Scrapy 框架 sudo pip install scrapy
安裝后针余,只要在命令終端輸入 scrapy,提示類似以下結(jié)果凄诞,代表已經(jīng)安裝成功

簡單案例:
一圆雁、新建項(xiàng)目
scrapy startproject test01
進(jìn)入到項(xiàng)目中:


test01.png

scrapy.cfg :項(xiàng)目的配置文件

mySpider/ :項(xiàng)目的Python模塊,將會(huì)從這里引用代碼

mySpider/items.py :項(xiàng)目的目標(biāo)文件

mySpider/pipelines.py :項(xiàng)目的管道文件

mySpider/settings.py :項(xiàng)目的設(shè)置文件

mySpider/spiders/ :存儲(chǔ)爬蟲代碼目錄

進(jìn)入到test01/spiders ,創(chuàng)建你的爬蟲文件:
scrapy genspider test(爬蟲文件名字) baidu.com(要爬取的域)


test02.png

接下來打開這個(gè)項(xiàng)目,就可以開始寫爬蟲文件了

scrapy通用爬蟲
CrawlSpider它是Spider的派生類帆谍,Spider類的設(shè)計(jì)原則是只爬取start_url列表中的網(wǎng)頁伪朽,而CrawlSpider類定義了一些規(guī)則Rule來提供跟進(jìn)鏈接的方便的機(jī)制,從爬取的網(wǎng)頁結(jié)果中獲取鏈接并繼續(xù)爬取的工作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汛蝙,一起剝皮案震驚了整個(gè)濱河市烈涮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窖剑,老刑警劉巖坚洽,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異西土,居然都是意外死亡讶舰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門需了,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跳昼,“玉大人,你說我怎么就攤上這事肋乍《旒眨” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵墓造,是天一觀的道長堪伍。 經(jīng)常有香客問我历帚,道長,這世上最難降的妖魔是什么杠娱? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮谱煤,結(jié)果婚禮上摊求,老公的妹妹穿的比我還像新娘。我一直安慰自己刘离,他們只是感情好室叉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著硫惕,像睡著了一般茧痕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恼除,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天踪旷,我揣著相機(jī)與錄音,去河邊找鬼豁辉。 笑死令野,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的徽级。 我是一名探鬼主播气破,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼餐抢!你這毒婦竟也來了现使?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旷痕,失蹤者是張志新(化名)和其女友劉穎碳锈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苦蒿,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殴胧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了佩迟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片团滥。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖报强,靈堂內(nèi)的尸體忽然破棺而出灸姊,到底是詐尸還是另有隱情,我是刑警寧澤秉溉,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布力惯,位于F島的核電站碗誉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏父晶。R本人自食惡果不足惜哮缺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甲喝。 院中可真熱鬧尝苇,春花似錦、人聲如沸埠胖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽直撤。三九已至非竿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谋竖,已是汗流浹背红柱。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留圈盔,地道東北人豹芯。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像驱敲,于是被迫代替她去往敵國和親铁蹈。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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