• Авторизация


Парсинг гугла 01-09-2005 21:00 к комментариям - к полной версии - понравилось!


Пытаюсь парсить выдачу гугла, но он выдает разные страницы для браузера и скрипта. Разница небольшая: в выдаче для браузера присутствует такой код для каждого сайта в списке:

Дизайн | Web-дизайн | Рекламный Дизайн | Полиграфия | Фирменный ...
Дизайн, Web-дизайн, Рекламный Дизайн, Полиграфия, Фирменный стиль, логотипы,


А для скрипта все тоже самое только нет:
onmousedown="return clk(this.href,'res','2','')"
А мне эта строчка нужна для определения позиции сайта, в данном случае, сайт на второй позиции.

Для парсинга использую функцию пхп:

$t=file_get_contents('http://www.google.ru/search?hl=ru&q='.urlencode($keyword).'&lr=lang_ru');

Проблема очевидно в том, что гугл распознает, что запрос идет от скрипта, а не от пользователя. Скорее всего нужно использовать сокеты... Может кто сталкивался с подобной проблемой?
Только вот CURL сразу отпадает, потому что на сервере, где будет работать скрипт его нет, и в ближайшее время не будет :(
вверх^ к полной версии понравилось! в evernote
Комментарии (8):
shakirov 01-09-2005-22:04 удалить
Почитай про CURL.

тебе нужно передавать User-agent в загаловках. Т.е. прикинуться браузером.
Читай пхп-ман по fopen wrappers. В частности:
user_agent директива в php.ini задает the user agent for PHP to send при использовании fopen и иже с ним функций по отношению к урлам.
zheleznodorzhnik 02-09-2005-10:59 удалить
непобедимый, Большое спасибо. Отредактировал php.ini теперь гугл думает, что я браузер. Все высылается отлично. Правда есть небольшая проблема с кодировками. Гугл шлет скрипту в UTF-8, я поставил в браузере эту кодировку. Только вот проблема еще в том, что если скрипт будет работать не у меня на локалхосте, то возможно будут с этим проблемы, так как в скрипте работаю с регулярными выражениями.
zheleznodorzhnik, поскольку на хостинге тебе вряд ли дадут править php.ini то глянь в сторону функеции ini_set
Насчет проблем с кодировкой - я на 100% уверен, что ПХП не смотрит какая у тебя кодировка указана в броузере. Он идет своими функциями на урл и сам кумекает в какой кодировке отдается контент. Так что этот потенциальный затык нету смысла принимать во внимание :)
zheleznodorzhnik 02-09-2005-13:35 удалить
Не, во внимание все-таки это пришлось принимать. Нашел чью-то функцию, которая переводит KOI8-r в UTF8. Теперь все работает нормально. Шлю запросы в этой кодировке, и он мне выдает нужные страницы.
shakirov 02-09-2005-13:39 удалить
zheleznodorzhnik, а что iconv() разве не рулит? :)))
zheleznodorzhnik 02-09-2005-15:09 удалить
Для iconv()вроде бы нужно дополнительный модуль ставить. А мне нужно обходиться стандартными средствами
shakirov 02-09-2005-15:11 удалить
да, увы iconv не все ставят сразу.. но модуль то это стандартный. т.ч. обычно без вопросов устанавливают.


Комментарии (8): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Парсинг гугла | web_development - Веб-разработка | Лента друзей web_development / Полная версия Добавить в друзья Страницы: раньше»