Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > Как получить страницу google c пом. curl


Автор: barcelona 28.9.2012, 20:10
Здравствуйте!
Пытаюсь получить страницу google для последующего парсинга.

Код

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.com/search?q=test&num=100&hl=en&biw=1280&bih=612&prmd=ivns&ei=&start=0&sa=N");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);    // если этот параметр не указать не работает!
$data = curl_exec($ch);

echo $data;


На локальной машине код работает. На рабочем сервере "302 Moved The document has moved here" и далее по ссылке "Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы, а не робот.". Как это обойти?

Автор: barcelona 30.9.2012, 10:45
Как я понимаю, даже нахождение решения не поможет, потому что Goggle шифрует страницу результатов поиска, да так, что оттуда ничего изъять невозможно. Остаются легальные средства: библиотеки Google. Я зарегистрировался, смотрю API - Custom Search API. Ограничение на число запросов - 100 в день, но хоть что-то. Да вот незадача: результаты, получаемые мною от этой фичи с реальными не имеют вообще ничего общего. Много статей в интернете на тему Google AJAX Search, но на официальном сайте Google вообще нет упоминаний об этом. Прикрыли? Неужели выдачу Google ВОООБЩЕ никак нельзя получить?

Автор: Fortop 30.9.2012, 11:55
эмулируйте браузер.
ну и прокси не забывайте.

Автор: barcelona 30.9.2012, 19:48
Цитата(Fortop @ 30.9.2012,  11:55)
эмулируйте браузер.
ну и прокси не забывайте.

Пытался отправлять заголовок CURLOPT_USERAGENT - получаю в лучшем случае главную страницу.
Про прокси: как его использовать непонятно, нашёл в интернете работающий прокси, задал CURLOPT_PROXY - не помогло.
Можно более детальные инструкции?  Где добыть работающий прокси?

Автор: barcelona 2.10.2012, 18:39
Достал работающий прокси. Не помогло.
AJAX API Google выдаёт только 64 результата/
Нашёл вот этот класс http://www.samay.info/googlescraper/ на сервере разраюотчика работает. На моём нет.
Я как понимаю, тёмный лес. За неделю излазил весь интернет, решений нет, одна вопросы.

Автор: Fortop 2.10.2012, 20:16
Поставьте себе Fiddler2

Просмотрите что уходит гуглу при вашем поисковом запросе и пытайтесь воспроизвести это поведение.
По другому - никак.

Автор: barcelona 5.10.2012, 14:59
Поставил Fiddler2, отправляю точно такие же заголовки, всё равно получаю капчу в ответ.
Ладно, пусть будет капча. Но тут всплыла другая сложность: при попытке отправить данные этой капчи (читай, всей формы с капчой) я получаю ещё одну форму с капчой. Гогл блочит мою капчу из-за того, что разные соединения при получении капчи и при отправке результата (как я понимаю). Можно ли сделать так, чтобы форма с капчой отправлялась гоглом и мною отправлялся ответ пользователя в рамках одного curl-соединения?

Автор: Fortop 6.10.2012, 18:26
Поищите все же нормальный прокси smile у меня ваш код из первого поста отдал выдачу.

Автор: barcelona 8.10.2012, 16:06
Когда я пытаюсь использовать прокси, гогл мне выкидывает:

ERROR
Cache Access Denied

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)