想抓取亚马逊的商品,在这个页面: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>';
}
}
请高手指点
$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>';
}
}
请高手指点
$surl="http://www.amazon.cn".$arr[1].'<br>';
url后面接的是<br>,下次请求的url肯定也会带那个br,有可能亚马逊解析不出错误的url,默认跳到第一个页面了~
纯属肉眼看猜测~
在你的代码中没有看到 cookie 的相关操作又,商城一般都有 js 操纵的跳转,就是防止你抓取他的信息不过,我有一个百思不得其解的问题,你能解答吗?
你把人家的信息抓回来,放在自己的网站上。究竟是为什么呢?与你有什么好处呢?