PHP新手,在写爬虫练手,一般情况下跟踪链接不是很难,但是如果是动态页面就束手无策了。
也许分析协议(但是怎么分析?),模拟执行JavaScript脚本(怎么弄?),……
另外可能写一个通用的爬取AJAX页面的Spider或许是比较复杂的问题,没有听说或相关开源项目。
下面是问题描述:
比如一个页面的下一页(ajax函数中有一个得到url对应数据放到content标签部分):
javascript: 下一页
对应的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("连接超时,稍后再试!");
}
}
对于ajax的请求,一般都会返回json或者xml格式的数据,打开网页的时候你可以用firebug来查看后台发送的ajax请求的格式,程序中设置请求的头信息,有的网站还需要设置cookie信息,不然不会返回数据,cooike的信息firebug都能查得到的。然后在发送请求,一般都会成功。
技术稍微过关的网站都会设置请求的频率限制,所以,注意发送请求的频率。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。