猿问

Spider抓取动态内容(JavaScript指向的页面)

PHP新手,在写爬虫练手,一般情况下跟踪链接不是很难,但是如果是动态页面就束手无策了。


也许分析协议(但是怎么分析?),模拟执行JavaScript脚本(怎么弄?),……


另外可能写一个通用的爬取AJAX页面的Spider或许是比较复杂的问题,没有听说或相关开源项目。


下面是问题描述:


比如一个页面的下一页(ajax函数中有一个得到url对应数据放到content标签部分):


javascript: <a href="javascript:Down(1)">下一页</a>

对应的JavaScript代码可能是:


function Down(index)

{

    $("#pageindex").val(parseInt(index)+1);

    ajaxpage(parseInt(index)+1);

}


function ajaxpage(index)

{

    $.ajax({

    type:"post",

    url:"class.aspx",

 data:"Option=select&cid="+$("#classid").val()+"&asc="+$("#orderselect>option:selected").val()+"&keyword="+escape($("#textfield").val())+"&PI="+index,

    success:function(data)

    {

        $("#content").html(data);

    },

    error: function(data) { 

             alert("连接超时,稍后再试!");

    }

}

ps: 我正在翻Stackoverflow,期望有进展,但是可能放在这里可能会更快得到解答。


噜噜哒
浏览 605回答 2
2回答

慕村9548890

不懂PHP,一直在用java抓东西,说说我的做法。对于ajax的请求,一般都会返回json或者xml格式的数据,打开网页的时候你可以用firebug来查看后台发送的ajax请求的格式,程序中设置请求的头信息,有的网站还需要设置cookie信息,不然不会返回数据,cooike的信息firebug都能查得到的。然后在发送请求,一般都会成功。技术稍微过关的网站都会设置请求的频率限制,所以,注意发送请求的频率。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答