爬蟲框架就是一些爬蟲項(xiàng)目的半成品,可以將些爬蟲常用的功能寫好赔蒲。然后留下一些接口谷婆,在不同的爬蟲項(xiàng)目當(dāng)中案狠,調(diào)用適合自己項(xiàng)目的接口,再編寫少量的代碼實(shí)現(xiàn)自己需要的功能。因?yàn)榭蚣苤幸呀?jīng)實(shí)現(xiàn)了爬蟲常用的功能,所以為開(kāi)發(fā)人員節(jié)省了很多精力與時(shí)間。
Scrapy
Scrapy框架是一套比較成熟的Python爬蟲框架令杈,簡(jiǎn)單輕巧,并且非常方便碴倾《贺可以高效事的爬取 Web頁(yè)面井從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)掉丽。
重要的是Scrapy 是一套開(kāi)源的框架,所以在使用時(shí)不需要擔(dān)心收取費(fèi)用的問(wèn)題异雁。
Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù)捶障,提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架「俚叮可以應(yīng)用在包括數(shù)據(jù)挖掘项炼,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中∈景恚可以用它輕松的爬下來(lái)如亞馬遜商品信息之類的數(shù)據(jù)锭部。
Scrapy 的官網(wǎng)地址為:
https://scrapy.org/
Crawley
Crawley也是Python開(kāi)發(fā)出的爬蟲框架,該框架致力于改變?nèi)藗儚幕ヂ?lián)網(wǎng)中提取數(shù)據(jù)的方式Crawley的具體特性如下:
基于Eventlet構(gòu)建的高速網(wǎng)絡(luò)爬蟲框架面褐。
可以將數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中拌禾,例如,Postgres, Mysql. Oracle. Sqlite.
可以將爬取的數(shù)據(jù)導(dǎo)入為Json. XML格式展哭。
支持非關(guān)系數(shù)據(jù)跨湃窍,例如,Mongodb 和Couchdb.
支持命令行工具匪傍。
可以使用喜歡的工具進(jìn)行數(shù)據(jù)的提取您市,例如,XPath 或Pyquery工具析恢。
支持使用Cookie登錄或訪問(wèn)那些只有登錄才可以訪問(wèn)的網(wǎng)頁(yè)墨坚。
Crawley的官網(wǎng)地址:
http://project.crawley-cloud.com/
PySpider
相對(duì)于Scrapy 框架而言,PySpider 框架是一支新秀映挂。它采用Pyho語(yǔ)言編寫,分布式架構(gòu)盗尸,支持多 種數(shù)據(jù)庫(kù)后端柑船,強(qiáng)大的WebUl支持腳本編輯器、任務(wù)監(jiān)視器泼各、項(xiàng)目管理器以及結(jié)果查看器鞍时。PSpier 的具體特性如下:
Python 腳本控制,可以用任何你喜歡的html解析包(內(nèi)置pyquery)扣蜻。
Web界面編寫調(diào)試腳本逆巍、起停腳本、監(jiān)控執(zhí)行狀態(tài)莽使、查看活動(dòng)歷史锐极、獲取結(jié)果產(chǎn)出。
支持MySQL芳肌、MongoDB灵再、 Redis. SQLite肋层、Elasticsearch, PostgreSQL與SQLAlchemy 。
支持RabbitMQ翎迁、Beanstalk栋猖、 Redis 和Kombu作為消息隊(duì)列。
支持抓取JavaSeript的頁(yè)面汪榔。
強(qiáng)大的調(diào)度控制蒲拉,支持超時(shí)重爬及優(yōu)先級(jí)設(shè)置。
專組件可替換痴腌,支持單機(jī)/分布式部署全陨,支持Docker部署。
項(xiàng)目地址:
https://github.com/binux/pyspider
Portia
Portia是一個(gè)開(kāi)源可視化爬蟲工具衷掷,可讓您在不需要任何編程知識(shí)的情況下爬取網(wǎng)站!簡(jiǎn)單地注釋您感興趣的頁(yè)面辱姨,Portia將創(chuàng)建一個(gè)蜘蛛來(lái)從類似的頁(yè)面提取數(shù)據(jù)。
Newspaper
Newspaper可以用來(lái)提取新聞戚嗅、文章和內(nèi)容分析雨涛。使用多線程,支持10多種語(yǔ)言等懦胞。
Newspaper框架是Python爬蟲框架中在GitHub上點(diǎn)贊排名第三的爬蟲框架替久,適合抓取新聞網(wǎng)頁(yè)。它的操作非常簡(jiǎn)單易學(xué)躏尉,即使對(duì)完全沒(méi)了解過(guò)爬蟲的初學(xué)者也非常的友好蚯根,簡(jiǎn)單學(xué)習(xí)就能輕易上手,因?yàn)槭褂盟恍枰紤]header胀糜、IP代理颅拦,也不需要考慮網(wǎng)頁(yè)解析,網(wǎng)頁(yè)源代碼架構(gòu)等問(wèn)題教藻。這個(gè)是它的優(yōu)點(diǎn)距帅,但也是它的缺點(diǎn),不考慮這些會(huì)導(dǎo)致它訪問(wèn)網(wǎng)頁(yè)時(shí)會(huì)有被直接拒絕的可能括堤。
Newspaper功能如下:
多線程文章下載框架
新聞網(wǎng)址識(shí)別
從html中提取文本
從html中提取頂部圖像
從html中提取所有圖像
從文本中提取關(guān)鍵字
從文本中提取摘要
從文本中提取作者
Google趨勢(shì)術(shù)語(yǔ)提取碌秸。
使用10種以上語(yǔ)言(英語(yǔ),中文悄窃,德語(yǔ)讥电,阿拉伯語(yǔ)......)
Beautiful Soup
Beautiful Soup 是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫(kù).它能夠通過(guò)你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.Beautiful Soup會(huì)幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間。
與Scrapy不同的是Beautiful Soup并不是一個(gè)框架轧抗,而是一個(gè)模塊恩敌;與Scrapy相比,bs4中間多了一道解析的過(guò)程(Scrapy是URL返回什么數(shù)據(jù)鸦致,程序就接受什么數(shù)據(jù)進(jìn)行過(guò)濾)潮剪,bs4則在接收數(shù)據(jù)和進(jìn)行過(guò)濾之間多了一個(gè)解析的過(guò)程涣楷,根據(jù)解析器的不同,最終處理的數(shù)據(jù)也有所不同抗碰,加上這一步驟的優(yōu)點(diǎn)是可以根據(jù)輸入數(shù)據(jù)的不同進(jìn)行針對(duì)性的解析狮斗;同一選擇lxml解析器;
Beautiful Soup的查找數(shù)據(jù)的方法更加靈活方便弧蝇,不但可以通過(guò)標(biāo)簽查找碳褒,還可以通過(guò)標(biāo)簽屬性來(lái)查找,而且bs4還可以配合第三方的解析器看疗,可以針對(duì)性的對(duì)網(wǎng)頁(yè)進(jìn)行解析沙峻,使得bs4威力更加強(qiáng)大,方便两芳。
Grab爬蟲框架
Grab是一個(gè)用于構(gòu)建Web刮板的Python框架摔寨。借助Grab,您可以構(gòu)建各種復(fù)雜的網(wǎng)頁(yè)抓取工具怖辆,從簡(jiǎn)單的5行腳本到處理數(shù)百萬(wàn)個(gè)網(wǎng)頁(yè)的復(fù)雜異步網(wǎng)站抓取工具是复。Grab提供一個(gè)API用于執(zhí)行網(wǎng)絡(luò)請(qǐng)求和處理接收到的內(nèi)容,例如與HTML文檔的DOM樹(shù)進(jìn)行交互竖螃。
Cola爬蟲框架
Cola是一個(gè)分布式的爬蟲框架淑廊,對(duì)于用戶來(lái)說(shuō),只需編寫幾個(gè)特定的函數(shù)特咆,而無(wú)需關(guān)注分布式運(yùn)行的細(xì)節(jié)季惩。任務(wù)會(huì)自動(dòng)分配到多臺(tái)機(jī)器上,整個(gè)過(guò)程對(duì)用戶是透明的腻格。
文末福利:
2021最新黑馬程序員爬蟲教程画拾!
從最簡(jiǎn)答的html語(yǔ)法到進(jìn)階的scrap爬蟲框架。新年福利荒叶。送送送碾阁!
微?G眾號(hào)回復(fù)‘爬蟲教程’ 送你黑馬程序員最新爬蟲教程