zhouchanglin 发表于 2010-11-26 18:04:56

javascript之ajax网站采集实例

本帖最后由 zhouchanglin 于 2010-11-26 18:10 编辑

这个站http://www.landscape.cn/news/xwzx.html


主要源码: <script src="/ks_inc/page.js"></script>
<script language="javascript" defer>
Page(1,'{SQL_新闻中心分页()}','20089156087841','/','plus/ajaxsql.asp','','');
</script>http://www.landscape.cn、ks_inc/page.js里德源码的主要部分function Page(curPage,labelid,classid,installdir,url,refreshtype,specialid)
   {
   this.labelid=labelid;
   this.classid=classid;
   this.url=url;
   if (labelid.substring(0,5)=="{SQL_")
   {
        var slabelid=labelid.split('(');
    slabelid=slabelid.replace("{","");
    this.c_obj="c_"+slabelid;
    this.p_obj="p_"+slabelid;
   }
   else
   {
   this.c_obj="c_"+labelid;
   this.p_obj="p_"+labelid;
   }
   this.installdir=installdir;
   this.refreshtype=refreshtype;
   this.specialid=specialid;
   this.page=curPage;
   loadData(1);

   }加载数据,发送ajax请求function loadData(p)
{this.page=p;
   var xhr=new PageAjax();
   xhr.open("get",installdir+url+"?labelid="+escape(labelid)+"&classid="+classid+"&refreshtype="+refreshtype+"&specialid=" +specialid+"&curpage="+p+getUrlParam(),true);
   xhr.onreadystatechange=function (){
                 if(xhr.readyState==1)
                          {
                               if (p==1)
                                eval('document.all.'+c_obj).innerHTML="<div align='center'><img src='"+installdir+"images/loading.gif'>正在连接服务器...</div>";
                          }
                          else if(xhr.readyState==2 || xhr.readyState==3)
                          {
                                if (p==1)
                                eval('document.all.'+c_obj).innerHTML="<div align='center'><img src='"+installdir+"images/loading.gif'>正在读取数据...</div>";
                          }
                          else if(xhr.readyState==4)
                          {
                       if (xhr.status==200)
                       {
                                  var pagearr=xhr.responseText.split("{ks:page}")
                                  var pageparamarr=pagearr.split("|");
                                  count=pageparamarr;   
                                  perpagenum=pageparamarr;
                                  pagecount=pageparamarr;
                                  itemunit=pageparamarr;   
                                  itemname=pageparamarr;
                                  pagestyle=pageparamarr;
                                  getObject(c_obj).innerHTML=pagearr;
                                  pagelist();
                       }
                        }
           }
    xhr.send(null);
}设置页码:function pagelist()
{
var n=1;       
var statushtml=null;
switch(parseInt(this.pagestyle))
{
case 1:       
    太长了略去。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
       statushtml+="&nbsp;第<select name=\"goto\" onchange=\"turn(parseInt(this.value));\">";
          for(var i=1;i<=this.pagecount;i++){
               if (i==this.page)
               statushtml+="<option value='"+i+"' selected>"+i+"</option>";
               else
               statushtml+="<option value='"+i+"'>"+i+"</option>";
          }       
       statushtml+="</select>页";
       getObject(this.p_obj).innerHTML=statushtml;
}加载某页的数据的函数,请求都是它触发的
function turn(i)
{
   loadData(i);
}xhr.open("get",installdir+url+"?labelid="+escape(labelid)+"&classid="+classid+"&refreshtype="+refreshtype+"&specialid=" +specialid+"&curpage="+p+getUrlParam(),true);这段是最重要的,可以找到ajax请求的地址

通过Page(1,'{SQL_新闻中心分页()}','20089156087841','/','plus/ajaxsql.asp','','');和function Page(curPage,labelid,classid,installdir,url,refreshtype,specialid)可以了解到传递的参数的意识:curpage=1---页数;labelid={SQL_新闻中心分页()};classid=20089156087841;installdir-------'/';url=plus/ajaxsql.asp;可以得到请求的地址是http://www.landscape.cn/plus/ajaxsql.asp?labelid={SQL_新闻中心分页()}&classid=20089156087841&refreshtype=&specialid=&curpage=1;

只要这样加列表就行了http://www.landscape.cn/plus/ajaxsql.asp?labelid={SQL_新闻中心分页()}&classid=20089156087841&refreshtype=&specialid=&curpage=页数,这个网站总页数是50,{ks:page}500|10|50|篇||2打开后这部分都有处理,分别代表总量,每页个数,总页数

规则还有问题,猜不到网址,浏览器都可以看到地址,火车里源码查看页可以,在内容测试时【内容】:对不起,标签不存在!{ks:page}|||||,怎么回事

zhangxiang 发表于 2010-12-8 22:12:21

确实满复杂的,学习中……

okok7845 发表于 2010-12-18 10:09:44

http://www.landscape.cn/plus/ajaxsql.asp?labelid=%7BSQL_%u65B0%u95FB%u4E2D%u5FC3%u5206%u9875%28%29%7D&classid=20089156087841&refreshtype=&specialid=&curpage=分页&=undefined

我发现这个也可以。哈

ldlwy 发表于 2011-3-6 11:43:18

好好学习一下好好学习一下好好学习一下好好学习一下

xldao 发表于 2012-5-3 17:32:31

{:4_180:}看是看不懂了只能膜拜了               

omasum 发表于 2012-7-10 10:09:16

=.=好复杂啊{:soso_e136:}

crecket 发表于 2012-11-13 16:17:32

直接截包估计简单点

liu0623 发表于 2013-4-19 16:04:23

贵州白癜风医院
贵阳白癜风医院
贵阳白癜风专科医院
贵阳治疗白癜风医院
贵阳最好的白癜风医院
贵阳林城医院
贵阳林城医院 白癜风能治愈吗
六盘水哪家白癜风医院最好
六盘水最好白癜风医院
六盘水白癜风医院
六盘水技术最好的白癜风医院
凯里白癜风医院
遵义最好白癜风医院
遵义白癜风医院
遵义技术最好的白癜风医院
遵义哪家白癜风医院最好
毕节最好白癜风医院
毕节哪家白癜风医院最好
毕节白癜风医院
毕节技术最好的白癜风医院
毕节哪家医院治白癜风最好

颜红汐 发表于 2013-4-24 20:26:19

怎么也看不懂,最近就遇到这样的问题
页: [1]
查看完整版本: javascript之ajax网站采集实例