Парсинг результатов выдачи Google. Проблема с распознаванием капчи

526
10 декабря 2016, 10:19

Пишу парсер выдачи результатов поиска гугла. Вроде бы несложно. Аналогичный парсер яши и мэйл работает. Но возникла проблема при скачивании картинки капчи. Упорно выдает 403 forbidden.

Делаю запрос к гуглу:

$url = 'https://www.google.ru/search?complete=1&hl=ru&q='.urlencode($query)...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_PROXY, $host.":".$port);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $login.":".$pass);
$content = curl_exec($ch);
// Далее если получил редрект:
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == 302)
{
   // .................
   // Выдираю картинку капчи и пытаюсь ее скачать
   // .................
   $captcha_image = 'http://ipv4.google.com/'.$image;
   $fh = fopen($captcha_file, 'w');
   curl_setopt($ch, CURLOPT_URL, $captcha_image);
   curl_setopt($ch, CURLOPT_FILE, $fh);
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_exec ($ch);
   fclose($fh);
   // Но вместо картинки получаю 403 forbidden.
}
curl_close($ch);

Пробовал при запросе картинки заново инициализировать сеанс cURL. Результат тот же.

Содержимое файла $cookie_file_path:

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
#HttpOnly_.google.ru    TRUE    /   FALSE   1490269969  NID 87=m8iayuoh4X_H9kTM4zNlYrVmavd0qd7X6Bj1mbyZwrn23e-BQyA-GlNYBsV9iKq5cVj1ZrB9770cWf036kdakSC3tvlDIu_KVpf8yN5ilKkUk8iHAMbi_QZqD7Inlxs3
READ ALSO
классы навигационного меню wordpress

классы навигационного меню wordpress

Фнкция wp_nav_menu() генерирует следующую структуру:

228
Удачная отправка письма

Удачная отправка письма

Не могу понять , как сделать так , чтобы при удачной проверки формы ( required ) показывался alert с сообщением о том , что письмо удачно отправилось

204
Как в Joomla проверить что пользователь состоит только в указанной группе?

Как в Joomla проверить что пользователь состоит только в указанной группе?

Хочу для Всех пользователей, которые в группе "регистр", показать сообщение, а для тех, кто в других группах, не показыватьКак сделать такую...

306
Использование php на сайте

Использование php на сайте

Только начинаю изучение веба, а именно php, все что выдает гугл это "Создание сайта на php + mysql"Вопрос следующий - это единственный способ использования...

225