采集ajax页面,结果只能采集第一页,是什么原因
http://www.520job.com/apply/我想采集这个页面
我用软件获取了它的发送的内容
ty=0&info=1
ty=0&info=2
ty=0&info=3
ty=0&info=4
当翻页时,只有info这个参数是变化的,和页码相同。我的采集设置如下
点测试网址的时候,采集到的数据永远是第一页的。我想问下我的设置是不是有问题!
哪位能指点一二?? 有人知道吗???????? {:4_188:}{:4_186:}{:4_197:} 好像是你post提交的地址不正确,以下是分析的数据:首先是 <img src="/images/730_01_01.gif" title="上一页" width="71" height="23" style="cursor:pointer" onClick="goPage('inputpage', 'totalpage','up')" /> <img src="/images/730_02.gif" title="下一页" width="71" height="23"style="cursor:pointer" onClick="goPage('inputpage', 'totalpage','next')" /> </td>
<td width="150">转到
<input name="gopage1" type="text"style="height:18px; line-height:15px; width:32px; text-align:center; border:1px solid #D9E0EA; margin:0px 3px;" id="gopage1" onKeyUp="value=value.replace(/[^\d]/g,'') " value="1" size="5" maxlength="10" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" />
<img src="../images/btn_ok3.gif" title="" style="cursor:pointer" onClick="goPage('gopage1','totalpage','nonce')" /> 页</td>这是它的页脚部分的代码,可以得出当点击上一页,下一页和输入页码都触发了goPage()函数,所以这个函数是关键,找出它的源码,一切问题就可以解决了
而原网页代码里找不到这个函数,所以肯定藏在了js文件里,我把整个网页全部保存,再来看它的js文件,
根据js文件的名字,已经可以大概猜出每个文件的用途了,
ajax文件设置了ajax的请求函数MyAJAX("POST", postUrl, params, "text", applyinfoResult);
list文件里包含了1.换档的函数applyswitchCell(n, hash),控制4个档的互换,ty参数代表哪个档,1,2,3,4
2.关键函数fgoPage(inputpage,totalpage,pageto),这是它的源码function goPage(inputpage,totalpage,pageto)
{
var page = document.getElementById(inputpage).value;
var totalpage = document.getElementById(totalpage).value;
if(pageto=='next'){
page=parseInt(page)+1
}else if(pageto=='up'){
page=parseInt(page)-1
}
page = filterPage(page, totalpage);
document.getElementById("inputpage").value = page;
applylistinfo(page);
}
function applylistinfo(info)
{
var postUrl="with/list.asp";
var infoty = document.getElementById("infoty").value;
var params="ty="+ infoty +"&info="+info;
MyAJAX("POST", postUrl, params, "text", applyinfoResult);
}
function applyinfoResult(responseText)
{
var page = document.getElementById("inputpage").value;
document.getElementById("apply_list").innerHTML = responseText;
document.getElementById("pagetxet").innerHTML = page;
document.getElementById("pagetxet1").innerHTML = page;
}嵌套的函数,goPage('gopage1','totalpage','nonce')" 以输入页码触发为例,可知函数得到了欲请求的页码,info变量接收了页码的值,这样params参数(post数据)---ty=1&info=页;MyAJAX("POST", postUrl, params, "text", applyinfoResult);这个函数可以在ajax文件里找到,建立了ajax请求,请求方式post,post地址postUrl,var postUrl="with/list.asp";,可知地址是http://www.520job.com/apply/with/list.asp,这样问题就解决了
把ty=1&info=分页,作为post数据,post地址http://www.520job.com/apply/with/list.asp,就可以采到了,这个网站我用get方式提交试了下,也可以请求到数据,规则里我是用get方式采集的,路写成这样的http://www.520job.com/apply/with/list.asp?ty=1&info=15
它的数据好像每页也是变的,每页的数据可能会不断变化
http://www.520job.com/apply/with/list.asp
这个地址我也试过,可就是不行
你一提醒倒让我 醍醐灌顶了。谢谢 还有一个问题
采集到的内容页地址是 http://www.520job.com/apply/with/job_show.asp?id=78974
而实际地址是http://www.520job.com/apply/job_show.asp?id=78974
请问这个在采集的时候能替换吗 使用手动填写链接规则方式组合出正确地址就可以了 我來就是對你最大的支持 自动跳转了啊 呵呵
页:
[1]