functionimitateSpider($url){
$ci = curl_init();//初始化一个CURL的会话
$user_agent ="Baiduspider+(+http://www.baidu.com/search/spider.htm)";//这里模拟的是百度蜘蛛
//curl_setopt($ci,CURLOPT_PROXY,'74.125.71.99');
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci,CURLOPT_HEADER,false);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ci,CURLOPT_REFERER,'http://www.baidu.com');//这里写一个来源地址,可以写要抓的页面的首页
curl_setopt($ci, CURLOPT_USERAGENT,$user_agent);
$temp=curl_exec($ci);//执行CURL会话
curl_close($ci);
return$temp;
}
$url='www.google.com.hk';
$data=imitateSpider($url);
print_r($data);
baiduspider在爬取网页时,发送请求的User-Agent字段内容将更新。
目前的字段内容是
Baiduspider+(+http://www.baidu.com/search/spider.htm)
更换后的字段内容是
Mozilla/5.0 (compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
当然也可以修改成不同浏览器或者移动设备。对于蜘蛛模拟还可以做一样事情,那就是当蜘蛛过来的时候,呈现的内容是符合蜘蛛口味,比如一些关键词的堆砌(SEO优化),对于浏览器或移动设备访问(人),呈现的内容是另外一种正常的文章,为的是用户体验。比如我用IE来模拟火狐访问,就是修改为火狐的信息使用这个:navigator.userAgent查看
Mozilla/5.0 (Windows NT 5.1; rv:14.0)Gecko/20100101 Firefox/14.0.1