Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как лучше парсить ответы Google? 
:(
    Опции темы
Гость_Alex
Дата 12.5.2005, 14:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет всем!

У меня тут возник вопрос. Дело в том, что при попытке получить гиперссылки из страницы-ответа Google, вместо ожидаемых "нормальных" гиперссылок ну типа там: www.some.com/zzz.htm, я получил ссылки вроде
http://66.102.9.104/search?q=cache:hevADNK...%BD%D1%82&hl=uk

smile

получал я ети ссылки так:
Код

my @links;
$content =~ s/href\=\"(http:\/\/.*?)\"/push( @links, $1 )/eg;


Подскажите пожалуйста, нет ли возможности получить "нормальние" ссылки из того же Google'овского документа и как ето лучше сделать?

Заранее благодарен.
  Вверх
sergejzr
Дата 12.5.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Не думаю, что это легально....


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Гость_Alex
Дата 12.5.2005, 15:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А что тут может быть нелегального? Мне кажется, так работают все метапоисковые системы, и парсят они ответы не только Google.
  Вверх
sergejzr
Дата 12.5.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Насколько я знаю, для того чтобы использовать гуглевские результаты надо к разработчикам сперва обращаться... Посмотрим, что люди скажут..


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Chuck
Дата 12.5.2005, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Думаю, через месять парсинга, они просто забанят твой IP
PM MAIL WWW GTalk   Вверх
Anarki
Дата 12.5.2005, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 1
Всего: 11



Вроде есть у них специальная система, они выдают какие-то idшники, ты формируешь запрос, тебе выдаётся результат в удобном виде, раньше эта услуга была бесплатной вроде. За дополнительной информацией в гугл.


--------------------
PM WWW   Вверх
aleksnn
Дата 13.5.2005, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.4.2005

Репутация: 2
Всего: 2



Убери " поставь в конце >
Код

my @links;
$content =~ s/href\=\(http:\/\/.*?)>/push( @links, $1 )/eg;

Где-то так.

Или сюда http://forum.vingrad.ru/index.php?showtopic=27451 для кого писал? smile

PM MAIL   Вверх
Гость_Дима
Дата 23.10.2005, 00:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Google's API Google сделал API для доступа к результатам поиска . Если в двух словах, то это легальная возможность задавать до 1000 автоматических запросов в день через их API, и получать данные в структурированном виде.
  Вверх
Гость_Дима
Дата 23.10.2005, 00:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











еще ссылки 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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Гость_Alex, гугл дает не прямые ссылки, а что-то воде www.google.com\redirect?парам-пам. Это делается для более точного определение "того что ты ищешь и где в итоге ты это нашел"


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
ochnev
Дата 4.7.2007, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



"Легальный" способ парсить выдачу Google - это через Google API. Там надо где-то регистриться и получать ID, который через этот API показывать.
Метапоисковые системы только так и работают, иначе их бы всех быстро забанили.

Можно парсить и "нелегально". Для этого надо делать random паузу между запросами к страницам (2-8 секунд) и обязательно делать паузу не менее минуты (или пол-минуты - не помню) между десятками страниц.

Может быть, там что-то поменялось с тех пор, но у меня не было такой проблемы, что вместо ожидаемых "нормальных" гиперссылок было что-то левое.


Это сообщение отредактировал(а) ochnev - 4.7.2007, 02:21
PM MAIL   Вверх
Zukoff
Дата 4.7.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 25.6.2006

Репутация: нет
Всего: нет



HTTP::Parse && URI::URL
а регекспами парсят урлы и особенно хтмл только... отчаянные
PM MAIL   Вверх
sharq
Дата 4.7.2007, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



Zukoff

Цитата(Zukoff @  4.7.2007,  15:43 Найти цитируемый пост)
отчаянные 


вот это ты пошутил smile

Цитата(Zukoff @  4.7.2007,  15:43 Найти цитируемый пост)
а регекспами парсят урлы и особенно хтмл только...

те, кто знает в них толк и не использует Perl как PHP. smile
На самом деле, если не знаешь рег.эксп.ы, то лучше в них разобраться, т.к. без них никуда!
Использовать вспомогательные модули - это уже последнее дело.

Хотя дело каждого - использовать готовое или написать самому!

 smile 



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0828 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.