Intereting Posts
Последние 2 буквы uri, определяющие используемый язык Можете ли вы поместить заполнители в выбранную часть запроса с использованием PDO? Этого достаточно для безопасного сайта? (4 небольшие функции) Для чего используется функция __construct? Преобразование числа в слова в индийском валютном формате с величиной паи Контроллер нагрузки CodeIgniter в контроллере HMVC PHP: Безопасен ли gzdeflate для нескольких машин? Зачем использовать класс alisases? Запрошенный PHP-расширение intl отсутствует в вашей системе (SonataAdminBundle) в Symfony2 Основной маршрут Laravel 4 У проблемы $ _REQUEST проблемы с безопасностью? Как преобразовать строку в код utf-8 в php Импортируемый массив из mysql работает, но массив не может использоваться php как массив? Разбор и создание ISO 8601. Временные интервалы даты и времени, такие как PT15M в PHP Переписывание URL с двумя параметрами с использованием .htaccess и Apache)

Результаты поиска Google с помощью php

Я использую следующий php-скрипт для получения результатов поиска от 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-секундным сном), я получаю предупреждение от Google и должен заполнять капчу (очевидно). Я всегда думал, что использование завитка и случайного агента пользователя может избежать этого. Какое правильное решение?

Лучший способ избежать капчей – установить рандомизированный сон между 3-6 секундами на запрос.

Лучшим решением является использование прокси.