2010-11-07 126 views
-1

在向Google查詢內容匹配項時,Google阻止我的IP遇到問題。我擁有300個私人IP地址,並且可以通過桌面應用(具有相同IP地址)來執行類似功能,從而輕鬆連接Google。但是,當我使用CURL在服務器上啓動它時,我的IP會暫時被阻止 - 您的計算機可能會發送自動查詢,請在30秒內重試。所以必須有足跡在某處。使用PHP Curl +代理查詢Google時遇到問題

任何如何,這裏是我的代碼:

function file_get_contents_curl($url, $proxy = true) { 

    global $proxies; 
    App::import('Vendor', 'proxies'); 

    $proxies = $this->shuffle_assoc($proxies); 
    $proxy_ip = $proxies[array_rand($proxies, 1)];//proxy IP here 
    $proxy = $proxy_ip.':60099'; 

    $loginpassw = 'myusername:mypassword'; //proxy login and password here 

    $ch = curl_init(); 

    if($proxy) { 

     curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
     //curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port); 
     curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP'); 
     curl_setopt($ch, CURLOPT_PROXY, $proxy); 
     curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw); 
     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)'); 
    } 

    curl_setopt($ch, CURLOPT_HEADER, 1); 
    @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    //Set curl to return the data instead of printing it to the browser. 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $data = curl_exec($ch); 
    //echo $data; 
    curl_close($ch); 
    return $data; 
    } 

我驗證過的IP被設置和我連接直通代理。

任何人有任何想法?

回答

-1

Http-proxies不保證您的隱私。你可以嘗試使用襪子。

但是你最好用google-api來代替。

0

可以使用HTTP代理以及SOCKS代理,在搜索谷歌搜索結果時沒有區別。
有多種可能的原因爲什麼你被發現。

  • 你的代理是質量差的或共享(也許不知情的情況下)
  • 你的代理是隻有一個或兩個子網/過連續
  • 您查詢谷歌太快或太頻繁

您不應該每隔一小時查詢一次IP超過20次的IP,這只是一個粗略的值,並且不會受到搜索引擎的懲罰。
所以你應該根據你的代理計數來實現延遲。

但是如果選項1)或2)是真的,即使這樣做沒有幫助,您將需要另一個IP解決方案。

查看Google等級刮板(http://google-rank-checker.squabbel.com/),它是一個免費的PHP項目,用於搜索Google,幷包含可用於自己的代碼的正確延遲例程。
此外,緩存功能可能證明對您有用,因爲您不想查詢超過需要的Google。

而不要忘記:
如果您發現,然後讓您的腳本停止自動!
你只是通過繼續發生麻煩,檢測意味着你做錯了什麼。