CODE‎ > ‎jQuery‎ > ‎

csv2array

目標是抓取網路上的股票及時報價 http://mis.tse.com.tw/data/3029.csv

先把 jquery 掛上 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 讓 jQuery 來幫我們處理

原本以為只要利用以下兩種方法即可抓取資料
//$("#tt").load("http://mis.tse.com.tw/data/3029.csv",function(data) {alert(data);});
//$.get("http://mis.tse.com.tw/data/3029.csv?ID=6666", function(data) { alert(data); });
結果大失敗

因為不同網域問題,所以必須跨網域抓取
所以再掛上 
<script src='https://raw.github.com/jamespadolsey/jQuery-Plugins/master/cross-domain-ajax/jquery.xdomainajax.js' type='text/javascript'></script>
好讓jQuery能跨網域抓取

接著在網頁上加上3個區塊,分別顯示抓到原始資料擷取資料部份轉成Array部份
<body>
  <p id="tt"></p>
  <p id="tt2"></p>
  <p id="tt3"></p>
<script>
var vNum;
vNum = Math.random();
vNum = Math.round(vNum*10000);
url = 'http://mis.tse.com.tw/data/3029.csv?r='+vNum;

$.get(url,function(data){
  ss = data.responseText;
  var r = /<p>(.*)<\/p>/;
  var a = ss.match(r);
  var b = ss.indexOf('"3029');
  var c = ss.indexOf("</p>", b);
  var e = ss.substring(b,c);
  $('#tt').text(ss);
  $('#tt2').text(e);
  st = '';
  myArr = e.split('","');
  for (var i=0; i<myArr.length; i+=1) {
    st = st + myArr[i] + "<br>";
  }
  $('#tt3').html(st);
});

</script>
</body>

將來再加上其他UI程式就可以做到一個WEB APP。

ċ
csv.zip
(2k)
Tomda Chang,
2011年8月18日 上午1:20
Comments