放上官方文檔地址:http://doc.scrapy.org/en/latest
scrapy 框架
- Scrapy是用純Python實現(xiàn)一個為了爬取網(wǎng)站數(shù)據(jù)宠进、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛码泞。
- 框架的力量歼秽,用戶只需要定制開發(fā)幾個模塊就可以輕松的實現(xiàn)一個爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便罗标。
- Scrapy 使用了 Twisted['tw?st?d] 異步網(wǎng)絡(luò)框架來處理網(wǎng)絡(luò)通訊,可以加快我們的下載速度积蜻,不用自己去實現(xiàn)異步框架闯割,并且包含了各種中間件接口,可以靈活的完成各種需求竿拆。
Scrapy架構(gòu)圖(綠線是數(shù)據(jù)流向):
- Scrapy Engine(引擎) : 負責Spider宙拉、ItemPipeline、Downloader丙笋、Scheduler中間的通訊谢澈,信號、數(shù)據(jù)傳遞等御板。
- Scheduler(調(diào)度器) : 它負責接受引擎發(fā)送過來的Request請求锥忿,并按照一定的方式進行整理排列,入隊稳吮,當引擎需要時缎谷,交還給引擎。
- Downloader(下載器) : 負責下載Scrapy Engine(引擎)發(fā)送的所有Requests請求灶似,并將其獲取到的Responses交還給Scrapy Engine(引擎)列林,由引擎交給Spider來處理,
- Spider(爬蟲) : 它負責處理所有Responses,從中分析提取數(shù)據(jù)酪惭,獲取Item字段需要的數(shù)據(jù)希痴,并將需要跟進的URL提交給引擎,再次進入Scheduler(調(diào)度器)春感,
- Item Pipeline(管道) : 它負責處理Spider中獲取到的Item砌创,并進行進行后期處理(詳細分析、過濾鲫懒、存儲等)的地方.
- Downloader Middlewares(下載中間件) : 你可以當作是一個可以自定義擴展下載功能的組件嫩实。
- Spider Middlewares(Spider中間件) : 你可以理解為是一個可以自定擴展和操作引擎和Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)
注意!只有當調(diào)度器中不存在任何request了窥岩,整個程序才會停止甲献,(也就是說,對于下載失敗的URL颂翼,Scrapy也會重新下載。)
在開始爬取之前,必須創(chuàng)建一個新的Scrapy項目级乍。進入自定義的項目目錄中绢淀,運行下列命令:
scrapy startproject Myproject
然后進入到Myproject同名目錄下的spider文件夾,在里邊創(chuàng)建爬蟲文件方可開始:
scrapy genspider jobbole jobbole.com # 這是域名