close

  這次介紹一個研究方法課程上挖到的寶,「Kimono」是爬蟲不是和服

講到網路爬蟲就不免扯到近年很夯的大數據(Big Data),在我的認知當中數據大不大這件事並不是絕對的,舉例來說,國小一年級學了ㄅㄆㄇㄈㄍㄋㄇㄉ就好像學了全世界,隨著年級愈來愈高,開始要認字背成語背詩詞,再來讀散文讀古文,這些累積到了大學若不是相關科系通常就又變成潛力了。在這每一個階段之中,對於資訊的接收都有一個極限,超過這個極限的資訊就可以稱為大數據,如果你比較偏好正式一點的解釋也可以點這裡



  多虧了該死的科技與資訊進步,現在可能要一整個房間中好幾十台電腦日以繼夜弄下來的資料才會達到極限。這些大數據弄下來之後要幹嘛今天暫且略過,硬要形容大數據帶來的影響與效益,就請想像一下剛學會開BT下載__軟體與影片所帶來的感動吧。這邊要秀的是網路爬蟲,簡而言之就是幫你從網路上抓資料下來的程式,爬蟲可以分為兩種,一種叫「agent」,跟特工有幾分像,會依據你給它的任務進行抓取,一個口令一個動作,沒有口令沒有動作;另一種叫「spider」,像蜘蛛結網般可以把所偵測到的資料全部抓下來。這樣看來spider好像很猛,但整本畫滿螢光筆的課本就跟沒畫一樣,因此學術上通常使用agent。



  「Kimono」的基本應用就是很簡單上手的agent,因為使用者幾乎不需任何程式背景,連也學得會!唯一要注意的是在使用爬蟲之前,要檢視目標網站的規範「robots.txt」,它的功用就跟每次都確認跳過沒有人會看的服務條款一樣,差別在於違反服務條款只要不出鬧出意外基本上不會出事,而robots會直接封鎖某些爬蟲的行為,讓你連出意外的機會都沒有。



  要檢視robots.txt,直接打在網址後面就行了。有些網站沒有robots檔,如果要進行大規模活動記得通知下網站管理員,這比較偏倫理範疇,這次不討論。

robots.png 

  拿旅遊網站TripAdvisor為例,進去後就可以看到robots檔內容,這邊有管理員給要爬資料者的話,而User-agent: *則是一般使用者的代稱,下面一排Disallow就是封鎖的爬蟲行為。

robots01.png 

  因為被禁止的東西太多了,直接跳到允許的部分:Allow。

robots02.png 

基本上不看robots直接爬如果爬不到就代表被禁止…不過身為一個品學兼優的使用者還是確認一下吧)



  這邊開始直接進入kimono,首先直接到網站點下安裝,然後依照你的瀏覽器要求把該點的點一點,順便註冊個帳號用來存放檔案。

kimono01.png 

kimono02.png 



  裝好之後右上角就會冒出圖示。

kimono03.png 



  接下來就到你想要爬資料的目標網站,這次我來爬TripAdvisor,看看新竹有什麼好吃的東西推薦給遊客。到網站之後點一下圖示,如果第一次使用的話會跳出教學,左上角可以關掉。

kimono04.png 

kimono05.png 

  點完圖示後會出現一個橫排,就是kimono的操作介面。常用功能大概就這些。

kimono06.png 



  假設我要抓餐廳的名字,就直接給它點下去,這時Kimono的自動偵測功能就會幫你偵測到類似的資料,直接打勾過打叉告訴系統這是不是你要的東西。

kimono07.png 

  左上角可以同步檢視目前所選取的資料量,在這邊當我打勾後就直接選了整頁的餐廳名字,很方便。我同時也把資料名稱改成name,當資料種類大的時候比較不容易搞混,取英文名是為了避免系統出奇怪的錯誤。

kimono_n.png 



  當我按下右上角的開始鍵之後就會跳到檔案設定畫面,輸入名稱,設定爬取頻率(當前資料、或每隔多久時間一次),按下確定就給它跑吧。附帶一提,這些都在kimono官方伺服器作業,完全不會占用你電腦資源,按下確定後放心做自己的事吧。

kimono08.png 



  好了之後點一下連結就能進入資料庫。在資料庫中我們可以看到剛剛抓的名字,系統同時也把名字的超聯結(NAME.HREF)給摸下來了。

kimono09.png 

kimono10.png 



  現在來使用選取功能,kimono允許我們直接選取資料,就跟在word編輯一樣。我直接選取餐廳排名的數字部分,可以看到我選的部分變黃色了,且kimono直接偵測到相似的資料。這個功能可以截取到讓你方便處理的資料。

kimono11.png 



  檢查下右上角是不是選到這個網站一頁當中的所有資料(30個),(如果缺少的話就直接選到完,一次選不夠你有試過第二次嗎?),順便改一下資料的名字。

kimono12.png 

  接下來介紹翻頁功能,據說這是爬蟲程式很難處理的部分,但kimono用一個按鈕就搞定了,我是說大部分的時候啦。首先點右上角的翻頁功能,然後點一下翻頁按鈕,注意這邊不要點到頁碼,不然翻到下一頁的時候有可能會讓程式找不到地方翻頁。

kimono13.png 



  當右上角書本變勾勾就代表設定完成,這時候會出現翻頁設定,第一次會是在設定檔名的時候,如果像我一樣是編輯舊的資料,那就要從設定這邊進去調整頁數。這個例子我抓了五頁,所以會有30x5=150筆資料。

kimono14.png 



  第一次設定的名字連同第二次設定的排名資料都抓下來了。你問我為啥排名的數字跟抓取順序一樣?因為我依照排名排序啊不然咧?

kimono15.png 



  現在秀一個實用的進階應用,如果我想要進去目錄裡面每一個網站抓資料要怎麼辦?

kimono16.png 



  說穿了其實很簡單,首先我們要建立一個「目錄」,假設這次我要進入第一頁所有餐廳的頁面抓資料,那我就要先建立所有餐廳的連結。方法剛剛出現過,還記得kimono會順便把目標的超連接摸下來嗎?

kimono17.png 

kimono18.png 



  然後我們再建立一個「任務」,也就是進入其中一個網頁去設定要抓的資料。這次我的設定是回覆數量、從最好到最差五個等第評分數、名字,共七個資料。

kimono19.png 



  之後在「任務」的API編輯當中跟「目錄」做連結,好了就給它跑吧。

kimono20.png 



  爬愈多資料需要愈多時間,這時候可以關掉視窗起來動一下。不用擔心回來找不到資料,在官網登入後就可以從自己的帳號下找到API檔。

kimono22.png 

  有了這些功能基本上已經可以應付大部分的場合,但是kimono還在Beta測試,因此某些時候沒有想像中的那麼聰明,甚至讓你想砸電腦。在處理海量資料的時候多少會出現偵測錯誤或是偵測不到的狀況,不過以一個免費的懶人服務來說真的頗好用。進階功能之後有空慢慢更新,祝大家玩得愉快~
arrow
arrow
    全站熱搜

    aix 發表在 痞客邦 留言(1) 人氣()