mazzystar 发表于 2013-2-7 16:27:32

从福彩官网抓取 双色球历史数据

把历史数据直接显示在页面上

代码中34,34 行 的 s 变成了ss
55,58行的a 变成了 aa 不知道是不是bug

<html><head>    <script type="text/javascript">var xmlHttp;//创建XMLHttpRequest对象。function createXMLHttpRequest() {   if (window.ActiveXObject) {         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   }      else if (window.XMLHttpRequest) {         xmlHttp = new XMLHttpRequest();   }}    function startRequest(year) {   createXMLHttpRequest();   xmlHttp.onreadystatechange = handleStateChange;   xmlHttp.open("GET", "http://map.zhcw.com/ssq/ssq/changgui_asc.jsp?size=" + year, true);//   xmlHttp.send(null);//发送该请求}//处理请求function handleStateChange() {   if(xmlHttp.readyState == 4) {       if(xmlHttp.status == 200) {var s =xmlHttp.responseText;// 去掉之前没有用的s = s.substring(s.indexOf("/ssq/ssq/changgui.jsp?size="));s = s.replace(/\s/g,"");// 显示到页面document.getElementById("dataDiv").innerHTML=parse(s);       }   }}function parse(s) {// 匹配数据">数字< "或"> < " 或"> 数字 < " 或 ">数字:数字<"var reg = new RegExp(">((( )*+( )*)|( )|(+([:]+)+))<","g");var r = s.match(reg);var sb = "";for(var i = 0; i< r.length;i++) {// 去掉><var a = r.substring(1,r.length - 1);// 解决蓝球号  13 的情况即去掉13前面的  if(a.indexOf("nbsp") > 0 && a.length > 6) {a = a.substring(6);}    a = a.replace(/ /g, "--");    sb +=a;    sb +="|";    // 每行有19个数据    if (i != 0 && (i + 1) % 19 == 0) {      sb +="<br>";    }}return sb;}</script></head><body><a href="javascript:startRequest(2003);">2003</a><br/><a href="javascript:startRequest(2004);">2004</a><br/><a href="javascript:startRequest(2005);">2005</a><br/><a href="javascript:startRequest(2006);">2006</a><br/><a href="javascript:startRequest(2007);">2007</a><br/><a href="javascript:startRequest(2008);">2008</a><br/><a href="javascript:startRequest(2009);">2009</a><br/><div id="dataDiv"></div></body></html>
页: [1]
查看完整版本: 从福彩官网抓取 双色球历史数据