3.2使用Snoopy模拟登陆做数据抓取,抓取不全的问题。

浏览:2057 发布日期:2014/01/10 分类:求助交流 关键字: Snoopy iframe
import('Org.Util.Snoopy');
$snoopy = new \Org\Util\Snoopy();//这里是否重复载入???
$url2 = "http://***";//表单页路径
$con1 =$snoopy->fetch($url2);//获取页面,拿识别码
preg_match('/name="agentCode" value="(.*)"/i',$con1,$myCode1);//分离识别码
$myCode1s =$myCode1[1];//识别码赋值
//post参数
$submit_vars["agentId"] = "900";
$submit_vars["nullQuery"]  = "true";
$submit_vars["pagingPage"] = 1;
$submit_vars["queryIds"] = "agentOperatorInfo";
$submit_vars["agentCode"] = $myCode1s;//识别码

$snoopy->agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"; //伪装浏览器   
$snoopy->referer = "http://***"; //伪装来源页地址 http_referer
$snoopy->rawheaders["COOKIE"]='hiurvetiurviu585tervetuhiyrt'; //伪装sessionid 
$snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息   
$snoopy->rawheaders["X_FORWARDED_FOR"] = "211.156.193.130"; //伪装ip  
 //用submit方法来提交
$s_url="******";//post提交地址
$snoopy->submit($s_url, $submit_vars); 
$var=$snoopy->results;//获得响应结果
dump($var);
以上获取数据正常,问题是被采集表单页是通过ajax返回结果到iframe里。但是获取的信息不全,只得到1条数据。

经验证使用$read_timeout做延迟还是只能拿到1条数据。
正常的页面和网页分析工具得到的响应数据都有12条数据,页码部分也写的12条数据。但是抓到的数据,页面和页码部分只显示1条。
不知道是哪里的问题引起的。。。
最佳答案
评论( 相关
后面还有条评论,点击查看>>