不知道Python爬蟲楷扬?這篇文章丟給他(內(nèi)含框架結(jié)構(gòu))

前言

爬蟲即網(wǎng)絡(luò)爬蟲,英文是Web Spider贴见。翻譯過來就是網(wǎng)絡(luò)上爬行的蜘蛛烘苹,如果把互聯(lián)網(wǎng)看作一張大網(wǎng),那么爬蟲就是在大網(wǎng)上爬來爬去的蜘蛛片部,碰到想要的食物镣衡,就把他抓取出來。

我們在瀏覽器中輸入一個網(wǎng)址档悠,敲擊回車廊鸥,看到網(wǎng)站的頁面信息辖所。這就是瀏覽器請求了網(wǎng)站的服務(wù)器惰说,獲取到網(wǎng)絡(luò)資源。那么缘回,爬蟲也相當(dāng)于模擬瀏覽器發(fā)送請求吆视,獲得到HTML代碼。HTML代碼里通常包含了標(biāo)簽和文字信息酥宴,我們就從中提取到我們想要的信息啦吧。

通常爬蟲是從某個網(wǎng)站的某個頁面開始,爬取這個頁面的內(nèi)容幅虑,找到網(wǎng)頁中的其他鏈接地址丰滑,然后從這個地址爬到下一個頁面,這樣一直不停的爬下去倒庵,進(jìn)去批量的抓取信息褒墨。那么,我們可以看出網(wǎng)絡(luò)爬蟲就是一個不停爬取網(wǎng)頁抓取信息的程序擎宝。

爬蟲的基本流程

發(fā)起請求

獲取相應(yīng)內(nèi)容

解析內(nèi)容

保存數(shù)據(jù)

爬蟲的用途

搜索引擎

采集數(shù)據(jù)

廣告過濾

用于數(shù)據(jù)分析

python爬蟲架構(gòu)組成

URL管理器:管理待爬取的url集合和已爬取的url集合郁妈,傳送待爬取的url給網(wǎng)頁下載器;

網(wǎng)頁下載器:爬取url對應(yīng)的網(wǎng)頁绍申,存儲成字符串噩咪,傳送給網(wǎng)頁解析器;

網(wǎng)頁解析器:解析出有價值的數(shù)據(jù)极阅,存儲下來胃碾,同時補(bǔ)充url到URL管理器。

Python爬蟲工作原理

Python爬蟲通過URL管理器筋搏,判斷是否有待爬URL仆百,如果有待爬URL,通過調(diào)度器進(jìn)行傳遞給下載器奔脐,下載URL內(nèi)容俄周,并通過調(diào)度器傳送給解析器吁讨,解析URL內(nèi)容,并將價值數(shù)據(jù)和新URL列表通過調(diào)度器傳遞給應(yīng)用程序峦朗,并輸出價值信息的過程建丧。

Python爬蟲常用框架有:

grab:網(wǎng)絡(luò)爬蟲框架(基于pycurl/multicur);

scrapy:網(wǎng)絡(luò)爬蟲框架(基于twisted)波势,不支持Python3翎朱;

pyspider:一個強(qiáng)大的爬蟲系統(tǒng);

cola:一個分布式爬蟲框架尺铣;

portia:基于Scrapy的可視化爬蟲闭翩;

restkit:Python的HTTP資源工具包。它可以讓你輕松地訪問HTTP資源迄埃,并圍繞它建立的對象;

demiurge:基于PyQuery的爬蟲微框架兑障。

Python爬蟲應(yīng)用領(lǐng)域廣泛侄非,在網(wǎng)絡(luò)爬蟲領(lǐng)域處于霸主位置,Scrapy流译、Request逞怨、BeautifuSoap、urlib等框架的應(yīng)用福澡,可以實現(xiàn)爬行自如的功能叠赦,只要您數(shù)據(jù)抓取想法,Python爬蟲均可實現(xiàn)革砸!

十個Python爬蟲框架

Scrapy:

Scrapy是一個為了爬取網(wǎng)站數(shù)據(jù)除秀,提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。 可以應(yīng)用在包括數(shù)據(jù)挖掘算利,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中册踩。它是很強(qiáng)大的爬蟲框架,可以滿足簡單的頁面爬取效拭,比如可以明確獲知url pattern的情況暂吉。用這個框架可以輕松爬下來如亞馬遜商品信息之類的數(shù)據(jù)。但是對于稍微復(fù)雜一點(diǎn)的頁面缎患,如weibo的頁面信息慕的,這個框架就滿足不了需求了。它的特性有:HTML, XML源數(shù)據(jù) 選擇及提取 的內(nèi)置支持挤渔;提供了一系列在spider之間共享的可復(fù)用的過濾器(即 Item Loaders)肮街,對智能處理爬取數(shù)據(jù)提供了內(nèi)置支持。

Crawley:

高速爬取對應(yīng)網(wǎng)站的內(nèi)容蚂蕴,支持關(guān)系和非關(guān)系數(shù)據(jù)庫低散,數(shù)據(jù)可以導(dǎo)出為JSON俯邓、XML等。

Portia:

是一個開源可視化爬蟲工具熔号,可讓使用者在不需要任何編程知識的情況下爬取網(wǎng)站稽鞭!簡單地注釋自己感興趣的頁面,Portia將創(chuàng)建一個蜘蛛來從類似的頁面提取數(shù)據(jù)引镊。簡單來講朦蕴,它是基于scrapy內(nèi)核;可視化爬取內(nèi)容弟头,不需要任何開發(fā)專業(yè)知識吩抓;動態(tài)匹配相同模板的內(nèi)容。

newspaper:

可以用來提取新聞赴恨、文章和內(nèi)容分析疹娶。使用多線程,支持10多種語言等伦连。作者從requests庫的簡潔與強(qiáng)大得到靈感雨饺,使用Python開發(fā)的可用于提取文章內(nèi)容的程序。支持10多種語言并且所有的都是unicode編碼惑淳。

Python-goose:

Java寫的文章提取工具额港。Python-goose框架可提取的信息包括:文章主體內(nèi)容、文章主要圖片歧焦、文章中嵌入的任何Youtube/Vimeo視頻移斩、元描述、元標(biāo)簽绢馍。

Beautiful Soup:

名氣大向瓷,整合了一些常用爬蟲需求。它是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫舰涌。它能夠通過你喜歡的轉(zhuǎn)換器實現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式.Beautiful Soup會幫你節(jié)省數(shù)小時甚至數(shù)天的工作時間风罩。Beautiful Soup的缺點(diǎn)是不能加載JS。

mechanize:

它的優(yōu)點(diǎn)是可以加載JS舵稠。當(dāng)然它也有缺點(diǎn)超升,比如文檔嚴(yán)重缺失。不過通過官方的example以及人肉嘗試的方法哺徊,還是勉強(qiáng)能用的室琢。

selenium:

這是一個調(diào)用瀏覽器的driver,通過這個庫你可以直接調(diào)用瀏覽器完成某些操作落追,比如輸入驗證碼盈滴。Selenium是自動化測試工具,它支持各種瀏覽器,包括 Chrome巢钓,Safari病苗,F(xiàn)irefox等主流界面式瀏覽器,如果在這些瀏覽器里面安裝一個 Selenium 的插件症汹,可以方便地實現(xiàn)Web界面的測試. Selenium支持瀏覽器驅(qū)動硫朦。Selenium支持多種語言開發(fā),比如 Java背镇,C咬展,Ruby等等,PhantomJS 用來渲染解析JS瞒斩,Selenium 用來驅(qū)動以及與Python的對接破婆,Python進(jìn)行后期的處理。

cola:

是一個分布式的爬蟲框架胸囱,對于用戶來說祷舀,只需編寫幾個特定的函數(shù),而無需關(guān)注分布式運(yùn)行的細(xì)節(jié)烹笔。任務(wù)會自動分配到多臺機(jī)器上蔑鹦,整個過程對用戶是透明的。項目整體設(shè)計有點(diǎn)糟箕宙,模塊間耦合度較高。

PySpider:

一個國人編寫的強(qiáng)大的網(wǎng)絡(luò)爬蟲系統(tǒng)并帶有強(qiáng)大的WebUI铺纽。采用Python語言編寫柬帕,分布式架構(gòu),支持多種數(shù)據(jù)庫后端狡门,強(qiáng)大的WebUI支持腳本編輯器陷寝,任務(wù)監(jiān)視器,項目管理器以及結(jié)果查看器其馏。Python腳本控制凤跑,可以用任何你喜歡的html解析包。

點(diǎn)擊右上角關(guān)注小編將會持續(xù)為您帶來相關(guān)資訊(您的關(guān)注就是小編最大的動力E迅础)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仔引,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子褐奥,更是在濱河造成了極大的恐慌咖耘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撬码,死亡現(xiàn)場離奇詭異儿倒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呜笑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門夫否,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彻犁,“玉大人,你說我怎么就攤上這事凰慈」保” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵溉瓶,是天一觀的道長急鳄。 經(jīng)常有香客問我,道長堰酿,這世上最難降的妖魔是什么疾宏? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮触创,結(jié)果婚禮上坎藐,老公的妹妹穿的比我還像新娘。我一直安慰自己哼绑,他們只是感情好岩馍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抖韩,像睡著了一般蛀恩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茂浮,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天双谆,我揣著相機(jī)與錄音,去河邊找鬼席揽。 笑死顽馋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幌羞。 我是一名探鬼主播寸谜,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼属桦!你這毒婦竟也來了熊痴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤聂宾,失蹤者是張志新(化名)和其女友劉穎愁拭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亏吝,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岭埠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惜论。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡许赃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馆类,到底是詐尸還是另有隱情混聊,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布乾巧,位于F島的核電站句喜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏沟于。R本人自食惡果不足惜咳胃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旷太。 院中可真熱鬧展懈,春花似錦、人聲如沸供璧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽睡毒。三九已至来惧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間演顾,已是汗流浹背供搀。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偶房,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓军浆,卻偏偏與公主長得像棕洋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乒融,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348