Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Как лучше парсить ответы Google? |
Автор: Гость_Alex 12.5.2005, 14:49 | ||
Привет всем! У меня тут возник вопрос. Дело в том, что при попытке получить гиперссылки из страницы-ответа Google, вместо ожидаемых "нормальных" гиперссылок ну типа там: www.some.com/zzz.htm, я получил ссылки вроде http://66.102.9.104/search?q=cache:hevADNKLndsJ:bash.com.ua/culture.html+%D0%91%D0%B5%D1%80%D0%B5%D0%B7%D0%BA%D0%BE+%D1%81%D1%82%D1%83%D0%B4%D0%B5%D0%BD%D1%82&hl=uk ![]() получал я ети ссылки так:
Подскажите пожалуйста, нет ли возможности получить "нормальние" ссылки из того же Google'овского документа и как ето лучше сделать? Заранее благодарен. |
Автор: sergejzr 12.5.2005, 14:55 |
Не думаю, что это легально.... |
Автор: Гость_Alex 12.5.2005, 15:14 |
А что тут может быть нелегального? Мне кажется, так работают все метапоисковые системы, и парсят они ответы не только Google. |
Автор: sergejzr 12.5.2005, 15:15 |
Насколько я знаю, для того чтобы использовать гуглевские результаты надо к разработчикам сперва обращаться... Посмотрим, что люди скажут.. |
Автор: Chuck 12.5.2005, 15:44 |
Думаю, через месять парсинга, они просто забанят твой IP |
Автор: Anarki 12.5.2005, 23:04 |
Вроде есть у них специальная система, они выдают какие-то idшники, ты формируешь запрос, тебе выдаётся результат в удобном виде, раньше эта услуга была бесплатной вроде. За дополнительной информацией в гугл. |
Автор: aleksnn 13.5.2005, 01:57 | ||
Убери " поставь в конце >
Где-то так. Или сюда http://forum.vingrad.ru/index.php?showtopic=27451 для кого писал? ![]() |
Автор: Гость_Дима 23.10.2005, 00:38 |
Google's API Google сделал API для доступа к результатам поиска . Если в двух словах, то это легальная возможность задавать до 1000 автоматических запросов в день через их API, и получать данные в структурированном виде. |
Автор: Гость_Дима 23.10.2005, 00:39 |
еще ссылки http://rene.com.ru/razdel21/x2289.htm на Google Api пли если вручную парсить Гуглю: if ($this->name == "google" ) { preg_match_all('/href=(\'|\")http:\/\/(\S*)(\"|\')/', $response, $page_links, PREG_PATTERN_ORDER); // î÷èùàåì îò âñÿêîãî õëàìà foreach( $page_links[2] as $page_link ){ if ( !preg_match("/(google|q=cache:|q=related:)/i", $page_link) ){ // çàïèñûâàåì $this->ret_links = array_merge($this->ret_links, $page_link); } } } |
Автор: DeadSoul 23.10.2005, 12:01 |
Гость_Alex, гугл дает не прямые ссылки, а что-то воде www.google.com\redirect?парам-пам. Это делается для более точного определение "того что ты ищешь и где в итоге ты это нашел" |
Автор: ochnev 4.7.2007, 02:20 |
"Легальный" способ парсить выдачу Google - это через Google API. Там надо где-то регистриться и получать ID, который через этот API показывать. Метапоисковые системы только так и работают, иначе их бы всех быстро забанили. Можно парсить и "нелегально". Для этого надо делать random паузу между запросами к страницам (2-8 секунд) и обязательно делать паузу не менее минуты (или пол-минуты - не помню) между десятками страниц. Может быть, там что-то поменялось с тех пор, но у меня не было такой проблемы, что вместо ожидаемых "нормальных" гиперссылок было что-то левое. |
Автор: Zukoff 4.7.2007, 14:43 |
HTTP::Parse && URI::URL а регекспами парсят урлы и особенно хтмл только... отчаянные |
Автор: sharq 4.7.2007, 17:21 |
Zukoff, вот это ты пошутил ![]() те, кто знает в них толк и не использует Perl как PHP. ![]() На самом деле, если не знаешь рег.эксп.ы, то лучше в них разобраться, т.к. без них никуда! Использовать вспомогательные модули - это уже последнее дело. Хотя дело каждого - использовать готовое или написать самому! ![]() |