2013-09-08 5 views
1

다음의 PHP 스크립트를 사용하여 Google 검색 결과를 얻고 있습니다. Google 검색 결과 :

include("simple_html_dom.php"); 
include("random-user-agent.php"); 


$query = 'facebook'; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'http://www.google.com/search?q='.$query.''); 
#curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($curl, CURLOPT_USERAGENT,random_user_agent()); 
$str = curl_exec($curl); 
curl_close($curl); 

$html= str_get_html($str); 

$i = 0; 
foreach($html->find('li[class=g]') as $element) { 
    foreach($element->find('h3') as $item) 
    { 
     $title[$i] = ''.$item->plaintext.'' ; 
    } 
     $i++; 
} 
print_r($title); 

이 스크립트는 cronjob에에서 실행

(5 초 수면) 나는 구글에서 경고를 받고 보안 문자 (명백한)를 입력해야합니다. 나는 항상 곱슬 곱슬 함과 무작위 사용자 에이전트를 사용하는 것이 이것을 피할 수 있다고 생각했다. 올바른 해결책은 무엇입니까?

+3

왜 사용자 에이전트를 무작위로 설정한다고해서 Google이 자동 검색을 사용하지 않는다고 생각하도록해야한다고 생각하십니까?) 대체 접근법에 대해서는 [이 답변] (http://stackoverflow.com/a/13058684/1229023)을 확인하십시오. – raina77ow

+3

정확한 해결책은 검색 API를 사용하는 것입니다. – JJJ

답변

1

captcha를 피하는 더 좋은 방법은 요청 당 3-6 초 사이의 무작위 수면을 설정하는 것입니다.

최상의 솔루션은 프록시를 사용하는 것입니다.