1.抓opendata 數據的網頁
這是抓取http://data.gov.tw/ 內想要的資訊的方法,以空汙指數為例,
首先,政府在公開平台現在有很多資訊可利用,
像本網頁想抓取的是http://opendata2.epa.gov.tw/AQX.json 這個網頁所分享出來的data
由於格式是json,也就是JavaScript的物件格式(每筆數據都存在所對應的物件中)
目前我在程式碼是過濾出"板橋區"的數據,再下去抓取
環保署在每個整點才更新一次數據,所以一天頂多也只有24筆資料,
但是對於長期的研究與資料的儲存仍然深具意義
程式碼使用方法:
1.用記事本開啟一個文件,取名為 index
2.把左半邊程式碼存入該文件,並把該文件附檔名改為.html
3.在index.html 所在的位置新增一個資料夾叫做 js
4.在js資料夾裡面,用記事本新增一個文件,檔名為 a
5.把JavaScript 欄的code貼到 a裡面,按儲存時把附檔名改為.js, 所以現在你的js資料夾內會多一個 a.js 檔案
html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<title>板橋空汙指數</title>
</head>
<body>
<h1>板橋空氣汙染資訊</h1><hr/>
<div id="content">
<h3>
<div id="hello" class="message">請參閱</div>
細懸浮微粒指標:等級<span id="fpmi">no data</span><br>
空氣汙染指標PSI = <span id="psi">no data</span><br>
主要汙染物 = <span id="mp">no data</span><br>
PM2.5 = <span id="pm25">no data</span> ug/m3<br>
PM10 = <span id="pm10">no data</span> ug/m3<br>
CO = <span id="co">no data</span> ppm<br>
NO = <span id="no">no data</span> ppb<br>
NO2 = <span id="no2">no data</span> ppb<br>
NOx = <span id="nox">no data</span> ppb<br>
O3 = <span id="o3">no data</span> ppb<br>
SO2 = <span id="so2">no data</span> ppb<br>
風向 = <span id="wd">no data</span> 度<br>
風速 = <span id="ws">no data</span>公尺/秒</h3><br><h5>
資料更新時間: <span id="pt">no data</span><br>
</h5>
</div>
<script src="js/a.js"></script>
</body>
</html>
JavaScript
$.get('http://opendata2.epa.gov.tw/AQX.json',function(e){
e.forEach(function(p){
if(p.SiteName=='板橋'){
var fpmi = document.getElementById('fpmi');
fpmi.textContent = p.FPMI;
var psi = document.getElementById('psi');
psi.textContent = p.PSI;
var mp = document.getElementById('mp');
mp.textContent = p.MajorPollutant;
var pm25 = document.getElementById('pm25');
pm25.textContent = p["PM2.5"];
var pm10 = document.getElementById('pm10');
pm10.textContent = p.PM10 ;
var co = document.getElementById('co');
co.textContent = p.CO ;
var no = document.getElementById('no');
no.textContent = p.NO ;
var no2 = document.getElementById('no2');
no2.textContent = p.NO2 ;
var nox = document.getElementById('nox');
nox.textContent = p.NOx ;
var o3 = document.getElementById('o3');
o3.textContent = p.O3 ;
var so2 = document.getElementById('so2');
so2.textContent = p.SO2 ;
var wd = document.getElementById('wd');
wd.textContent = p.WindDirec ;
var ws = document.getElementById('ws');
ws.textContent = p.WindSpeed ;
var pt = document.getElementById('pt');
pt.textContent = p.PublishTime ;
}
});
});