日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

不編程也能爬蟲?手把手教你如何從互聯(lián)網(wǎng)采集海量數(shù)據(jù)

 劉真合 2016-07-13


大數(shù)據(jù)文章-數(shù)據(jù)抓取交流學習群成立啦!

想要跟大神級別的本文作者同群交流學習爬蟲?

想要跟小伙伴一起組團打怪爬下某網(wǎng)站并交流心得?

想獲取第一手數(shù)據(jù)抓取咨詢和工具?

點擊文末“閱讀原文”報名加入


 ◆ 


少朋友都會問:幾十萬條租房,二手房,薪酬,乃至天氣數(shù)據(jù)都是從哪里來的?其實這些數(shù)據(jù)在十幾分鐘內(nèi)就可以采集到!


一般我會回答,我用專門的工具,無需編程也能快速抓取。之后肯定又會被問,在哪里能下載這個工具呢?


最近比較忙亂,說好的一大堆寫作任務都還沒有完成。授人以魚不如授人以漁,我做了一個決定,將這套軟件全部開源到GitHub。


免費使用,開放源代碼! 從此以后,估計很多做爬蟲的工程師要失業(yè)了。。。因為我的目標是讓普通人也能使用!


這篇文章介紹爬蟲大概的原理,末會有程序地址。


 ◆ 

什么是爬蟲

什么是爬蟲

互聯(lián)網(wǎng)是一張大網(wǎng),采集數(shù)據(jù)的小程序可以形象地稱之為爬蟲或者蜘蛛。


爬蟲的原理很簡單,我們在訪問網(wǎng)頁時,會點擊翻頁按鈕和超鏈接,瀏覽器會幫我們請求所有的資源和圖片。所以,你可以設(shè)計一個程序,能夠模擬人在瀏覽器上的操作,讓網(wǎng)站誤認為爬蟲是正常訪問者,它就會把所需的數(shù)據(jù)乖乖送回來。


爬蟲分為兩種,一種像百度(黑)那樣什么都抓的搜索引擎爬蟲。另一種就是開發(fā)的,只精確地抓取所需的內(nèi)容:比如我只要二手房信息,旁邊的廣告和新聞一律不要。


爬蟲這樣的名字并不好聽,所以我給這套軟件起名為Hawk,指代為'鷹',能夠精確,快速地捕捉獵物。 基本不需編程,通過圖形化拖拽的操作來快速設(shè)計爬蟲,有點像Photoshop。它能在20分鐘內(nèi)編寫大眾點評的爬蟲(簡化版只需3分鐘),然后讓它運行就好啦、


下面是使用Hawk抓取二手房的視頻,建議在wifi環(huán)境下觀看:

 ◆ 

自動將網(wǎng)頁導出為Excel


那么,一個頁面那么大,爬蟲怎么知道我想要什么呢?



人當然可以很容易地看出,上圖的紅框是二手房信息,但機器不知道。


網(wǎng)頁是一種有結(jié)構(gòu)的樹,而重要信息所在的節(jié)點,往往枝繁葉茂。 舉個不恰當?shù)谋确?,一大家子人?gòu)成樹狀族譜,誰最厲害?當然是:

 

  •   孩子多,最好一生20個

  •   孩子各個都很爭氣(生的孫子多)

  •   最好每個孩子還都很像(清一色的一米八)


大家就會覺得這一家子太厲害了!


我們對整個樹結(jié)構(gòu)進行打分,自然就能找到那個最牛的節(jié)點,就是我們要的表格。找到最牛爸爸之后,兒子們雖然相似:個子高,長得帥,兩條胳膊兩條腿,但這些都是共性,沒有信息量,我們關(guān)心的是特性。大兒子錐子臉,跟其他人都不一樣,那臉蛋就是重要信息;三兒子最有錢——錢也是我們關(guān)心的。 因此,對比兒子們的不同屬性,我們就能知道哪些信息是重要的了。 


回到網(wǎng)頁采集這個例子,通過一套有趣的算法,給一個網(wǎng)頁的地址,軟件就會自動地把它轉(zhuǎn)成Excel! (聽不懂吧?聽不懂正常, 不要在意這些細節(jié)!)


 ◆ 

破解翻頁限制


獲取了一頁的數(shù)據(jù),這還不夠,我們要獲取所有頁面的數(shù)據(jù)!這簡單,我們讓程序依次地請求第1頁,第2頁...數(shù)據(jù)就收集回來了

就這么簡單嗎?網(wǎng)站怎么可能讓自己寶貴的數(shù)據(jù)被這么輕松地抓走呢?所以它只能翻到第50頁或第100頁。鏈家就是這樣:


這也難不倒我們,每頁有30個數(shù)據(jù),100頁最多能呈現(xiàn)3000條數(shù)據(jù)。北京有16個區(qū)縣兩萬個小區(qū),但每個區(qū)的小區(qū)數(shù)量就沒有3000個了,我們可分別獲取每個區(qū)的小區(qū)列表。每個小區(qū)最多有300多套在售二手房,這樣就能獲取鏈家的所有二手房了。


然后我們啟動抓取器,Hawk就會給每個子線程(可以理解為機器人)分配任務:給我抓取這個小區(qū)的所有二手房! 然后你就會看到壯觀的場面:一堆小機器人,同心協(xié)力地從網(wǎng)站上搬數(shù)據(jù),超牛迅雷有沒有?同時100個任務??!上個廁所回來就抓完了?。?!



 ◆ 

清洗:識別并轉(zhuǎn)換內(nèi)容

獲取的數(shù)據(jù)大概長這樣:

但你會看到,里面會有些奇怪的字符應該去去掉。xx平米應該都把數(shù)字提取出來。而售價,有的是2130000元,有的是373萬元,這些都很難處理。 


BUT,沒關(guān)系!Hawk能夠自動識別所有的數(shù)據(jù):

  • 發(fā)現(xiàn)面積那一列的亂碼,自動去掉

  • 識別價格,并把所有的價格都轉(zhuǎn)換為萬元單位

  • 發(fā)現(xiàn)美元,轉(zhuǎn)換為人民幣

  • 發(fā)現(xiàn)日期,比如2014.12或2014年12.31,都能轉(zhuǎn)換為2014年12月31日

哈哈,然后你就能夠輕松地把這些數(shù)據(jù)拿去作分析了,純凈無污染!


 ◆ 

破解需要登錄的網(wǎng)站


此處的意思當然不是去破解用戶名密碼,還沒強到那個程度。 有些網(wǎng)站的數(shù)據(jù),都需要登錄才能訪問。這也難不倒我們。


當你開啟了Hawk內(nèi)置了嗅探功能時,Hawk就像一個錄音機一樣,會記錄你對目標網(wǎng)站的訪問操作。之后它就會將其重放出來,從而實現(xiàn)自動登錄。


你會不會擔心Hawk保存你的用戶名密碼?不保存怎么自動登錄呢?但是Hawk是開源的,所有代碼都經(jīng)過了審查,是安全的。你的私密信息,只會躺在你自己的硬盤里。

(我們就這樣自動登錄了大眾點評)


 ◆ 

是不是我也可以抓數(shù)據(jù)了


理論上是的。但道高一尺魔高一丈,不同的網(wǎng)站千差萬別,對抗爬蟲的技術(shù)也有很多種。而且小蟲蟲對細節(jié)非常敏感,只要錯一點,后面的步驟就可能進行不下去了。


怎么辦呢?沙漠君把之前的操作保存并分享出來,你只要加載這些文件就能快速獲取數(shù)據(jù)了。


如果你有其他網(wǎng)站的獲取需求,可以去找你身邊的程序員同學,讓他們來幫忙抓數(shù)據(jù),或讓他們來試試Hawk,看看誰的效率更高。


如果你是文科生妹子,那還是建議你多看看東野奎吾和村上春樹,直接上手這么復雜的軟件會讓你抓狂的。那該找誰幫忙抓數(shù)據(jù)呢?嘿嘿嘿...


 ◆ 

在哪里獲取軟件和教程?

Hawk: Advanced Crawler& ETL tool written in C#/WPF軟件介紹

HAWK是一種數(shù)據(jù)采集和清洗工具,依據(jù)GPL協(xié)議開源,能夠靈活,有效地采集來自網(wǎng)頁,數(shù)據(jù)庫,文件, 并通過可視化地拖拽,快速地進行生成,過濾,轉(zhuǎn)換等操作。其功能最適合的領(lǐng)域,是爬蟲和數(shù)據(jù)清洗。


Hawk的含義為“鷹”,能夠高效,準確地捕殺獵物。


HAWK使用C# 編寫,其前端界面使用WPF開發(fā),支持插件擴展。通過圖形化操作,能夠快速建立解決方案。


GitHub地址:https://github.com/ferventdesert/Hawk

其Python等價的實現(xiàn)是etlpy:

http://www.cnblogs.com/buptzym/p/5320552.html

筆者專門為其開發(fā)的工程文件已公開在GitHub:

https://github.com/ferventdesert/Hawk-Projects

使用時,點擊文件,加載工程即可加載。

不想編譯的話,可執(zhí)行文件在:

http://pan.baidu.com/s/1c8zBiQ 密碼:4iy0

編譯路徑在:
Hawk.Core\Hawk.Core.sln


感謝作者授權(quán)轉(zhuǎn)載,稿件部分有變動,作者在大數(shù)據(jù)文摘的其他投稿點擊文末推薦文章查看。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多