想抓取亚马逊的商品,在这个页面:http://www.amazon.cn/s/ref=sr_pg_6?rh=n%3A658390051%2Cn%3A!658391051%2Cn%3A658413051%2Cp_6%3AA1AJ19PSB66TGU&page=6&bbn=658413051&ie=UTF8可以正确获取到下一页的地址:http://www.amazon.cn/s/ref=sr_pg_7?rh=n%3A658390051%2Cn%3A%21658391051%2Cn%3A658413051%2Cp_6%3AA1AJ19PSB66TGU&page=7&bbn=658413051&ie=UTF8&qid=1361553785可是不知为何,获取到的下一页的地址用来在浏览器打开,或者单独抓取内容的时候都正确无误,只是在循环抓取的时候,下一页的内容却变成了第一页,且一直在第一页循环,代码如下://循环次数
$pagend = 3;
$surl = 'http://www.amazon.cn/s/ref=sr_pg_6?rh=n%3A658390051%2Cn%3A!658391051%2Cn%3A658413051%2Cp_6%3AA1AJ19PSB66TGU&page=6&bbn=658413051&ie=UTF8';
for($i1 = 0; $i1 < $pagend; $i1++){
 echo $text=file_get_contents($surl);
//获取下一页的链接
if(preg_match('#class="pagnNext"\s*\n\s*href="(.*)"#iUs',$text,$arr)){
echo $surl="http://www.amazon.cn".$arr[1].'<br>';
}
}
请高手指点

解决方案 »

  1.   

    目测只要抓一共有多少页,然后自己修改page参数就可以了吧?
      

  2.   

    没运行,不过单从代码来看,这行应该有问题:
    $surl="http://www.amazon.cn".$arr[1].'<br>';
    url后面接的是<br>,下次请求的url肯定也会带那个br,有可能亚马逊解析不出错误的url,默认跳到第一个页面了~
    纯属肉眼看猜测~
      

  3.   

    商城必然使用 cookie
    在你的代码中没有看到 cookie 的相关操作又,商城一般都有 js 操纵的跳转,就是防止你抓取他的信息不过,我有一个百思不得其解的问题,你能解答吗?
    你把人家的信息抓回来,放在自己的网站上。究竟是为什么呢?与你有什么好处呢?