發表文章

目前顯示的是 4月, 2017的文章

[網頁基礎爬蟲] 用 Python 來做 Web Scraping,擷取 LocateFamily 內的資料

圖片
我們在學習或工作的時候,少不免要在網上收集資料。若果牽涉一些數據或統計相關的工作,通常需要收集大量資料,例如分析股票走勢時便要收集大量股價,把網上的數據輸入 Excel 或其他工具以作處理及分析。但很多時候,網上的數據為了較好的排版及視覺效果,呈現的格式對我們把數據輸入 Excel 的工作變得不方便,例如把大量數據分成數千頁顯示,若果要人手逐頁複製到 Excel,恐怕要花上一天時間。這些無聊重覆的工作大家都不想做,所以今天想分享如何用程式收集數據、自動生成一份 csv 檔。 數據收集的途徑 現時網絡上最好的方法大概是用 API,一般大型網站(例如 Twitter、Facebook、Google)都會提供 API 給公眾使用,提取結構化的資料。但並不是所有網站都有提供 API,目的可能是不希望公眾提取到公司大量資料、或者沒有相關技術人員負責。讀者可能還想到 RSS 或其他途徑,但這些方法都有一些限制,在此不以討論。如果這些途徑都不可行的時候,還有其他方法嗎?答案當然是有。接下來會示範如何提取 LocateFamily 的數據並自動生成一份 csv 檔。 Web Scraping Web Scraping,意思就是用程式技巧來抽取網站上的內容。它有很多的別名,Web Havesting、Web Data Extraction、Web Screen Scraping、Web Data Mining 等等,但就是好像沒有一個中文名字。基本上,任何程式語言都可以做 Web Scraping,由於 Python 是比較容易的程式語言,而且在 Web Scraping 及大數據方面有較齊全的開發工貝,所以今次會用 Python 做示範。(請自行搜尋 Python 安裝教學) Web Scraping 其實分開兩個工序。第一個工序就是把你需要的網頁下載,第二個工序就是在下載了的網頁中找出有用的資料。正常的網頁內容,其實都是根據 html 標準的,下載之後就是一串很長的 string,就跟你在瀏覽器裡面 view source 看到的一樣。把這一串很長的 string 變成能夠容易解讀、存取特定資料的過程,就叫做 html parsing。 Web Scraping 工序 工序一:下載網頁 我們首先看看第一個工序。要下載一個網頁,其實有很多工具,在 Pyt