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


最近在做一些抓取其它網站數據的工作,當然別人不會乖乖免費給你抓數據的,有各種防抓取的方法。不過道高一尺,魔高一丈,通過研究都是有漏洞可以鑽的。下面的例子都是用PHP寫的,不會用PHP來curl的孩紙先學習一下這塊再往下看,可以參考這篇文章:http://blog.csdn.net/linglongwunv/article/details/8020845

      下面言歸正傳,先說一種常見的方式,偽造來源IP,這也是好多刷票朋友常用的方法:

1、簡單一點的可以在header偽造X-FORWARDED-FOR,並偽造referer,代碼如下:

[php]  view plain copy
 
  1. curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:111.222.333.4', 'CLIENT-IP:111.222.333.4'));  
  2. curl_setopt($ch, CURLOPT_REFERER, "http://www.test.com");  


2、上面的方法大多數能糊弄過去,但也有抓到了真實IP的。就使用代理,麻煩在於你有一個有效的代理ip和端口號,有的還需要用戶名密碼,代碼如下:

 

[php]  view plain copy
 
  1. curl_setopt($ch, CURLOPT_PROXY, "http://111.222.333.4:110");  


      另外還有一種情況,就是用瀏覽器可以訪問,用curl就是不行,發現對方檢查了useragent,如果沒有就認為是抓取等非法來源,那么我們就自己在header加上useragent,代碼如下:

 

 

[php]  view plain copy
 
    1. 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");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM