最新消息:网站改版咯

php模拟蜘蛛爬虫抓取网页绕过防盗链

php Yovae 1052浏览

php模拟蜘蛛爬虫抓取网页绕过防盗链,一个网站有时候需要抓取一些其它站点的数据来充实一下内容,俗称php采集网页,有的网站设置了防盗链,用简单的方法是抓取不到内容的,我们可以用php模拟蜘蛛爬虫抓取网页绕过防盗链。具体实现方法看以下代码:

function imitateSpider($url){
$ci = curl_init();   //初始化一个CURL的会话

/*
如果出现错误,需要加载库,Fatal error: Call to undefined function curl_init()
 
设置php.ini配置文件
extension=php_curl.dll
把libeay32.dll和ssleay32.dll拷贝到c:\windows\system32里面,重启Apache
*/
$user_agent = "Baiduspider+(+http://www.baidu.com/search/spider.htm)";//这里模拟的是百度蜘蛛
//curl_setopt($ch,CURLOPT_PROXY,'74.125.71.99');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.baidu.com');//这里写一个来源地址,可以写要抓的页面的首页
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
$temp=curl_exec($ch);//执行CURL会话
curl_close($ch);
return $temp;
}
 
$url='www.google.com.hk';
$data=imitateSpider($url);
var_dump($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)
模拟蜘蛛的原理其实很简单,就是修改User-Agent
当然也可以修改成不同浏览器或者移动设备。对于蜘蛛模拟还可以做一样事情,那就是当蜘蛛过来的时候,呈现的内容是符合蜘蛛口味,比如一些关键词的堆砌(SEO优化),对于浏览器或移动设备访问(人),呈现的内容是另外一种正常的文章,为的是用户体验。
比如我用IE来模拟火狐访问,就是修改为火狐的信息
使用这个:navigator.userAgent 查看
Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1

用以上代码就可以轻松绕过站点的防采集功能,因为几乎没雨站点拒接百度蜘蛛,淘宝除外啊,呵呵。

转载请注明:Yovae Studio » php模拟蜘蛛爬虫抓取网页绕过防盗链