資料視覺化 李慕約公司

Data Visualization

開放資料「平台」的快速成長

開放資料平台真的再迅速成長,繼上星期立法院開放資料,剛剛又看到:商工行政資料開放平臺。台灣的開放資料平台,每兩個星期就有一個新平台。

我最近一直好奇的問題:

就是到底是越多資料平台越好,還是越少越好?

我的意思是,現在從事 SheetHub.com 的一個核心想法,就是希望可以只有一個開放平台:所有的資料都倒進來,然後只有一個統一的 API 接口。因為照理來講,越多開放平台是越糟的。

但在爬資料,遇到的問題是,資料本身的品質真的很可怕。有幾種情勢的可怕:

API 太有個性

這裡指的是不同的開放資料 API,往往會要求開方者有不同的開發方式,這是為什麼每一個開放平台都需要重新寫一個爬蟲,並且可以寫一篇文章。 舉例,像是一般的 JSON 回覆是 [{資料}, {資料}, {資料}

Continue reading...

已匯入:新竹縣政府

  • 匯入:https://sheethub.com/data.hsinchu.gov.tw
  • 網址:新竹縣政府
  • 網站分析:
    • 扣分:網頁上的 JSON、CSV 按鈕所導向的 API 頁面沒有辦法直接用程式讀取,會出現錯誤: CERT_UNTRUSTE。需要把頁面上 API 網址的 https 改成 http,頁面居然會出現下列程式碼,然後伺服器才會將使用者導入到 https。但因為頁面的 http 的加密強度不夠,導致 node.js 的 request 會因為安全性問題沒有辦法讀取網頁。需要加上 "rejectUnauthorized": false
Continue reading...

已匯入:新北市政府

  • 匯入:https://sheethub.com/data.ntpc.gov.tw
  • 網址:新北市政府
  • 網站分析:
    • 扣分:每一個的資料表頭不太一致,有一些有「五星」,有一些沒有。雖然把空的資料隱藏起來對人比較好閱讀,但對機器來講,必須要把所有的資料遍歷,收集所有的表頭。
      • 扣分:每一個資料網址是一串 68FFE0C1-B157-4AE8-A5BB-189D2361FC70# hash過的網址,並非有意義的流水號或分類。在爬的時候,需要先產生所有的連結,在一次性下載。
    • 扣分:有一些資料連結到(公務員?)的 C 槽中。
    • 這一個網站 formData 只要有 columns 缺少,
Continue reading...

已匯入:客家委員會

  • 匯入:https://sheethub.com/data.hakka.gov.tw
  • 網址:客家委員會
  • 網站分析:
    • 扣分:資料目錄、資料分類頁面沒有 unique url,所以必須用 header 去換頁
    • 扣分:每一個資料網址是一串 68FFE0C1-B157-4AE8-A5BB-189D2361FC70# hash 過的網址,並非有意義的流水號或分類。在爬的時候,需要先產生所有的連結,在一次性下載
    • 加分:提供表頭 餐廳名稱:restaurant 電話:tel 住址:address
    • 很多頁面只是 .pdf 或著是把另一個網站的連結放過來而已:公務統計預算書
Continue reading...

如何把所有開放資料都爬下來?

純粹從一個技術的角度,如何把所有的開放資料爬下來?假如先考慮台灣好了。

  • 連同前幾天成立的立法院開放資料,台灣共有 17 個開放資料平台,並持續成長中:(中央)政府平台、農業、文化、環境、食品藥物、內政、客家、臺北、新北、新竹、臺中、南投、臺南、宜蘭、高雄、金門。
  • 每一個來源,會有不同的資料介接 API 介接格式。另外,每一個來源對於描述自己的資料集都可能有一些系統慣性,想像是 A 平台都是使用 100/12/12 來儲存日期,但 B 平台是用 2011/
Continue reading...