- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток!
Пишу парсер выдачи результатов поиска гугла. Вроде бы несложно.
Аналогичный парсер яши и мэйл работает.
Но возникла проблема при скачивании картинки капчи.
Упорно выдает 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
Заголовки указывал:
$a_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$a_headers[] = 'Accept-Encoding: gzip, deflate';
$a_headers[] = 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
$a_headers[] = 'Connection: keep-alive';
$a_headers[] = 'Host: ipv4.google.com';
$a_headers[] = 'Proxy-Authorization: Basic cnU2MDc0MDpDNEJkWk1EMTJE';
$a_headers[] = 'Upgrade-Insecure-Requests: 1';
$a_headers[] = 'User-Agent: 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)';
Результат тот же