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的安裝:
sudo pip3 install Scrapy
Scrapy框架官方網(wǎng)址: http://doc.scrapy.org/en/latest
Scrapy中文維護(hù)站點(diǎn): http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
Scrapy 架構(gòu)圖:
Scrapy Engine(引擎): 負(fù)責(zé)Spider慢逾、ItemPipeline、Downloader灭红、Scheduler中間的通訊侣滩,信號、數(shù)據(jù)傳遞等变擒。
Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請求君珠,并按照一定的方式進(jìn)行整理排列,入隊赁项,當(dāng)引擎需要時葛躏,交還給引擎澈段。
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ì)分析、過濾账阻、存儲等)的地方.
Downloader Middlewares(下載中間件):你可以當(dāng)作是一個可以自定義擴(kuò)展下載功能的組件蒂秘。
Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests)
創(chuàng)建Scrapy項目:
- 創(chuàng)建名為"projectname"的爬蟲項目:
scrapy startproject projectName
- 進(jìn)入spiders文件創(chuàng)建爬蟲文件:
scrapy genspider name domainName
- **通用爬蟲
scrapy genspider -t crawl name domainName
Scrapy項目文件介紹:
Scrapy運(yùn)行流程大概如下:
- 首先下載器下載request回執(zhí)的html等的response
- 然后下載器傳給爬蟲解析
- 接著爬蟲解析后交給調(diào)度器過濾,查重等等
- 最后交給管道淘太,進(jìn)行爬取數(shù)據(jù)的處理