Как эмулировать браузерный запрос к google при помощи cURL?

Нужно получить 100 первых результатов поиска по определенному ключевому слову(при помощи скрапера), но время от времени гугл блокирует IP и требует ввести каптчу. Можно ли эмулировать браузерный запрос при помощи cURL?

Конфиги cURL:

$curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($curl);
  • Вопрос задан
  • 9576 просмотров
Пригласить эксперта
Ответы на вопрос 7
barmaley_exe
@barmaley_exe
Если хотите прикинуться браузером, то лучший способ — быть им. Например, с помощью phantomJS.
Ответ написан
ilyaerin
@ilyaerin
ruby разработчик
Так вроде у гугла есть API, зачем этот велосипед?
Ответ написан
Комментировать
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
1. Сделайте запрос в браузере
2. Посмотрите какие заголовки уходят к гуглу (смотреть с помощью chrome dev tools, firebug, fiddler или т.п.)
3. Запрограммируйте curl отправлять идентичные заголовки
4.…
5. PROFIT!
Ответ написан
Комментировать
@VeMax
Предположим вы передадите заголовки браузера, а что это изменит? Google также будет блокировать при превышении неких лимитов.
Ответ написан
Stdit
@Stdit
Гугл ведь неспроста блокирует запросы от скриптов, и проверяет их капчей, поэтому нужно доказать ему, что ваш скрипт — не бот (распознать капчу). Я замечал, что он это делает, когда запрашиваемые слова не связаны морфологически и идут массово с одного адреса (который, к тому же, наверняка принадлежит известному датацентру?). Еще можно попробовать отправлять корректный «браузерный» заголвок, с юзерагентом и прочими хедерами.
Ответ написан
kenny_opennix
@kenny_opennix
в консоле примерно так curl -A Mozilla www.google.com/search?q=linux |html2text -width 70
Ответ написан
Комментировать
@egorinsk
Какая Гуглу выгода от того, что им пользуются боты? Они не смотрят рекламу, от них только нагрузка и вред. правильно Гугл делает, я бы тоже скрипты блокировал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы