最近在作一些抓取其它网站数据的工做,固然别人不会乖乖免费给你抓数据的,有各类防抓取的方法。不过道高一尺,魔高一丈,经过研究都是有漏洞能够钻的。下面的例子都是用PHP写的,不会用PHP来curl的孩纸先学习一下这块再往下看,能够参考这篇文章:http://blog.csdn.net/linglongwunv/article/details/8020845 php
下面言归正传,先说一种常见的方式,伪造来源IP,这也是好多刷票朋友经常使用的方法: 浏览器
一、简单一点的能够在header伪造X-FORWARDED-FOR,并伪造referer,代码以下: curl
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:111.222.333.4', 'CLIENT-IP:111.222.333.4')); curl_setopt($ch, CURLOPT_REFERER, "http://www.test.com");二、上面的方法大多数能糊弄过去,但也有抓到了真实IP的。就使用代理,麻烦在于你有一个有效的代理ip和端口号,有的还须要用户名密码,代码以下:
curl_setopt($ch, CURLOPT_PROXY, "http://111.222.333.4:110");三、另外还有一种状况,就是用浏览器能够访问,用curl就是不行,发现对方检查了useragent,若是没有就认为是抓取等非法来源,那么咱们就本身在header加上useragent,代码以下:
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11");