用 Google 試算表爬資料
Google 試算表資料爬取工具
- importDATA – 讀取網路上的 CSV / TSV 檔
- importHTML — 讀取網頁表格
- importXML — 讀取任意網頁內容
- 使用 Magic JSON 匯入 json 檔
importDATA 讀取 CSV 檔
-
新北市各區人數統計表 是從政府開放平台的 這裡 備份下來的,以免被官方移除,範例就跑不動了。
-
在 Google 試算表中任一儲存格輸入:
=importDATA("http://mike2014mike.github.io/sample/2018-08-14/new-taipei-people.csv")
importHTML 讀取網頁表格
-
若我們想要匯入維基百科中「各國人均國民總收入列表」中的「高收入組」資料
-
在 Google 試算表中任一儲存格輸入:
=importHTML("https://zh.wikipedia.org/wiki/各國人均國民總收入列表", "table", 2)
importXML 讀取任意網頁內容
-
這裡會使用到 XML Path Language (XPath),XPath 長得有點像目錄結構或網址的寫法,他使用斜線分格、並利用標籤名做找查。
-
Google Chrome 瀏覽器提供了「Copy XPath」的功能,可以讓我們直接複製任意網頁內容的 XPath 。
-
找到想要的內容後,點擊右鍵選擇「檢查」,再到該程式碼點擊右鍵選擇「Copy」→「Copy XPath」
//*[@id="main-container"]/div[2]/div[2]/div[2]/a
- 路徑經過些許嘗試後,最後的指令碼如下
=importXML("https://www.ptt.cc/bbs/Beauty/index.html","//*/div[2]/*/div[@class='title']/a")
分析
- 取出貼文分類 ( 於儲存格 B1 執行 )
=regexextract(A1,"\[[^\]]+\]")
- 條列分類種類 ( 於儲存格 C1 執行 )
=unique(B:B)
- 計算各分類數量 ( 於儲存格 D1 執行 )
=counta(filter(B:B,B:B=C1))
執行後的結果如下
注意
Google 試算表只能對付「靜態」網頁,也就是資料與結構都是在遠端電腦產生的網頁類型,若碰到使用 JavaScript 做內容動態載入或需要登入的個人化頁面,我們便還是得靠進一步的網頁分析與開發爬蟲程式才能順利取得我們想要的資料了。