2022-01-10

數據時代必備工具 – Python 爬蟲

現今這個大數據時代,要進行數據分析,首先就是要取得我們需要的數據,而學習爬蟲,就像是為 自己訂製一個客製化的搜尋引擎,讓我們更獲取更多的資料的同時,這些資料可以按我們的目的進 行過濾、採集,去除掉大量無關的資料,進而提升效率。 但首先,我們必須先了解數據如何爬取、如何儲存、如何進行分詞、相關性計算等,才能進一步設 計出符合我們需求的個人化搜尋引擎!

一、 什麼是爬蟲
網絡爬蟲,其實稱作「網絡數據採集」會比較容易理解,是一種用來自動瀏覽全世界網站的指令或 程式碼,所謂的網路搜尋引擎,就是通過爬蟲軟體更新自身的網站內容或其對其他網站的索引,網 路爬蟲可以將自己所選取的頁面儲存下來,以便搜尋引擎在之後生成索引以供使用者使用及搜尋。

以 Google 為例,Google 搜尋引擎就是一個巨大的爬蟲程式,我們「放入關鍵字」,搜尋引擎就會自 動尋找、抓取全球所有的網頁,生出一個列表,讓我們可以依據需要的內容去選取網頁。

二、 爬蟲原理
透過剛剛的例子,我們可以發現,網路爬蟲就是通過程式向網路伺服器請求數據(HTML 表單),然 後解析 HTML 網頁內容,提取出自己需要的數據。 以下可以歸納為四大步驟:

1、 根據網址獲取 HTML 數據
2、 解析 HTML,獲取目標資料
3、 儲存資料
4、 重複第一步,直到資料被抓取完畢


三、 爬出的資料可以幹嘛?

透過分析數據,我們不只能掌握資訊,更能透過手上的資訊,預測未來即將發生的事。 美國一位當代知名的統計與預測天才 納特·西爾弗(Nate Silver),目前是專門播放體育節目的美國有 線電視聯播網 ESPN 旗下部落格 FiveThirtyEight 的主編,同時也是 ABC News 的特派記者。他研發出 PECOTA,用來預測美國大聯盟棒球運動員的表現和職業前景,更可以進一步預測棒球賽事的結果, 最後吸引了知名棒球評論媒體 Baseball Prospectus 收購。他成立的部落格 FiveThirtyEight,於 2008 及 2012 年,兩次成功預測歐巴馬贏得選舉;其中歐巴馬第二次當選時,西爾弗預測的 50 個州更是 全部命中,準確率百分之百。


我們在探勘資料時,最花時間的往往不是對資料進行演算,而是取得和處理資料,若沒有適合的資料輸入,最後只會落得浪費時間、事倍功半的下場。近年來開放資料的風氣越來越盛行,民間與政府都陸續將各自蒐集到的資料釋出,而這也逐漸成為資料科學家們取得資料相當方便的來源,但絕大多數的資料並非在這些的網站上等著人下載,我們若能學會網路爬蟲方法,才能將網路上資源真正納為己用。

四、 為什麼要選擇 Python?
前一篇文章就有提到,Python 是一門通俗易懂、適合零基礎入門的程式,尤其是在爬蟲領域有著獨特的優勢,才成為了首選程式語言。

1、 與其他靜態程式語言如 C++、C#、Java 相比,Python 抓取網頁文件的介面更加簡單、完整。
2、 與其他動態程式語言 shell、 Perl,Python 的 urllib2 資源包提供了非常完整的訪問網頁文件。
3、 我們透過爬蟲程式在抓取網頁資訊時,有時候需要模擬瀏覽器的行為,而 Python 就提供了很多第三方資源包如 Requests、mechanize 等可以運用,。
4、 要處理抓取到的網頁資訊時,會需要提取文字、過濾標籤等,Python 則提供了簡潔的文件處理功能,讓我們可以用很短的程式碼就完成大部分文件處理,可以節省大量記憶體,也省去很多功夫。

除了以上為大家總結的幾個常見的原因外,你可能還有一些其他學習 Python 爬蟲的原因。總之,不管是什麼原因,要先釐清自已學習的目的,就可以更好地去研究一門知識技術並運用喔!