爬蟲紅什麼?怎麼入門?|大數據|AI|資料分析

爬蟲入門

近年來我們三不五時就會聽到「爬蟲」,但「爬蟲」是什麼?有什麼用途?為什麼它這麼火紅呢?讓我們一起來看看吧~



目錄

*為什麼談爬蟲?

*淺談爬蟲基本概念&作法

*爬蟲工具推薦

*小結


--------------------------------------------------------------------------------------------------------------------------


*為什麼談爬蟲?

近年AI與大數據話題大盛,資料本身的價值更開始獲得萬眾矚目。而「爬蟲」本身所指即為
網頁抓取(Web scraping)技術,我們利用爬蟲抓取個人需要或有興趣的網站資料,並進一步分析。舉例來說,我們可以上卡提諾或批踢踢論壇抓取近期NBA相關文章,製成討論熱度、聲量好壞的分析圖:




(*此圖僅為示例用,並非真實資料)

也許你會疑惑:為什麼要花時間寫爬蟲呢?我用複製貼上也可以取得資料呀!

但關鍵便在於抓取及後續資料處理的效率。目前常見的爬蟲應用場景有股市分析、論壇輿情分析、電商網站資訊分析......等等,而這些實例的共通點便是需大量資料時,比如要分析股市趨勢,通常不會只看短期走勢,而也需近幾年的資訊累積,有大量資料作為基底,才可能有較良好、合理的分析成果。
“The world’s most valuable resource is no longer oil, but data.”
                           -- 2017,《Economists》

足見對於巨量資料的了解與運用在未來絕對有舉足輕重之地位。因此,若能快速且有效地取得大量資料並加以分析運用,那是再好不過的了!



*淺談爬蟲基本概念&作法

網頁抓取(Web scraping)其實存在已久,如Google、Yahoo等搜尋引擎同樣是應用爬蟲技術來呈現使用者搜尋結果。然而,在通常狀況下,這不會是我們需要的網路爬蟲類型,那麼我們在踏出大數據分析的第一步時,又是使用什麼樣的爬蟲技術呢?

一般我們實踐基本網路爬蟲的步驟如下:


1.尋找目標網站

可以是有興趣的論壇、可以是電商網站,大致瀏覽網站即了解結構,並確認需用資料。


2.檢視HTML

利用inspect功能對應找出欲抓取之部分。為此最好對HTML標籤有基礎的認識(如一個頁面會有的基礎架構、標籤使用),HTML因為是標記語言,相對好理解,即使初次學習也不會造成太大的心理負擔。
(HTML相關知識建議可參考大名鼎鼎的W3School網站)


3.提供網站URL

撰寫程式時丟出目標URL,利用工具抓取網頁原始碼。但往往實作時抓取項目不會只有一頁,因此在放上第一頁的URL之後,還得撰寫迴圈,讓爬蟲程式能爬完後續頁面。


4.進一步擷取所需網站內容

爬取網站的結果基本上就是個大雜燴,因此要利用工具包拆解文檔,過濾出需要之資訊,而過濾方式就是使用方才在目標網站上inspect HTML之觀察結果。


5.整理擷取網站資料

這部分是為了方便後續資料分析。可以將爬取的資訊整理為一個資料表並進行後續分析,最後再將成果匯出為Excel或CSV檔。




*爬蟲工具推薦

1.Python

首先是Python,它近年來由於簡潔的語法及低入門門檻而大紅大紫,許多非資工、資管相關科系的學生也開始使用Python作為各自領域上的分析應用工具。而Python在爬蟲技術的使用上同樣非常出色,並非其他程式語言無法實現爬蟲,而是其功能包、對接窗口、效能等等綜合長項實在樂勝其他程式語言。比如Requests第三方包可直接模擬用戶登錄,抓取提供URL之頁面原始碼;而抓取後的網頁原始碼通常需要處理,這時使用BeautifulSoup便可輕鬆拆解HTML文檔,過濾簡潔且方便,也因此非常適合入門者練習。

雖然製作一隻簡單的爬蟲程式確實不難,但其缺點是因為缺乏可擴展性而使得通用性不高、效率差且不穩定,因此在具備一些基礎爬蟲概念後,也可試著運用Scrapy框架(一個相當簡便的通用爬蟲框架)累積實戰經驗。進一步則比如若要進行大規模網站擷取工作,以期達成高效能、自動化,其實便可嘗試結合scrapy和scrapy-redis實現分布式網路爬蟲(以scrapy為基底,在其上用redis數據庫替換原本的deque,因而可以大大提升擷取效能)。

2.Excel VBA

如果你從未接觸過程式語言,但急需嘗試爬蟲技術,那麼或可考慮使用Excel VBA。
➤首先,開啟「自訂功能區」並勾選「開發人員」選項。
➤點選「巨集/錄製巨集」並設定巨集名稱
➤切到「資料」頁籤,點選「從WEB中取得外部資料」並輸入網址
 ⇢此時頁面上會顯示網站畫面,並在可抓取區塊旁顯示標記
➤勾選欲抓取之所有區塊,並點選「匯入」
➤資料GET!點選「巨集/停止錄製」(Excel會自動幫忙過濾網頁樣式)

此外,如果目標網站有提供XML格式檔,便可嘗試在Excel的WEBSERVICE函數代入網址,並用FILTERXML分析XML,如下:
FILTERXML(WEBSERVICE("目標網址"))
便可取得需用資料。因此若網站有佛心提供XML,便盡情使用吧~

以Excel實現爬蟲可以不必撰寫程式碼,效率高、且不易出錯,臨時需要時非常值得一試;然而使用上固然方便,彈性卻也相對較差。和程式語言比起來各有利弊,選擇適合自己的即可。


*小結

爬蟲只是資料分析的開始,要讓它發揮價值,還得依靠之後的技術以及分析者的數據探究、解讀能力。但不論如何,踏出第一步還是相當有意義的,我們可以先學習如何獲取資料、再練習分析技巧以及思考如何把data轉為information,甚至進一步作為AI機器學習、深度學習之應用,於各個領域發揮最大價值。


您對資料處理有興趣嗎?不妨考慮報考公職/國營事業,不僅薪資福利好,也能兼顧生活品質。若有興趣或任何疑問,歡迎於下方填寫諮詢表,將有專人聯繫您喔~

留言

閱讀更多

【2024/113年大學資管系、資工系最低錄取分數排名】 | 分科測驗(指考)一覽表

【113年資工所考科】| 2024資工研究所考試科目總整理(台大資工、清大資工、交大資工)

【2024資管系出路解析】| 四大面向了解薪水、就業出路