用curl抓取網站數據,仿造IP、防屏蔽終極強悍解決方式

最近在作一些抓取其它網站數據的工做,固然別人不會乖乖免費給你抓數據的,有各類防抓取的方法。不過道高一尺,魔高一丈,經過研究都是有漏洞能夠鑽的。下面的例子都是用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");
相關文章
相關標籤/搜索