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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> грабер - общий алгоритм, какие они бывают 
:(
    Опции темы
burakov
Дата 7.4.2011, 23:25 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день, 
я всех уже наверное забодал этими граберами, но уж очень хочется быстро разобраться в данной теме.
В данном случае интересует алгоритм и исполнение грабера:

Вот например, понятно, что 

многопоточные и нет,
с докачкой и без,

обычно их (граберы) запускают локально (чтобы все модули были и т.п.),
но иногда их запускают на хостинге, если хостинг дает доступ к консоли (так?)

Но еще,наверное, грабер может запускаться как CGI скрипт!?.
(ну иногда ставят в такие условия, что консоли нет, а выполняться грабер должен на хостинге)

И тут возникают вопросы - каким образом этот скрипт можно выполнить по расписанию?,
и чтобы он выполнялся - все равно нужна же клиентская машина с броузером, то есть пока она включена - скрипт выполняется, как только выключится - ему негде выполнятся? Или я чего то не понимаю?

Кто как делает эти парсеры при помощи CGI?

Часто вижу, требуют написать парсер как модуль к CMS (ни пусть что это не Perl, а обычно PHP) все равно не могу понять - что для синхронизации данных (если парсер допустим имеет свой WEb интерфейс) какая то кнопка запуска вручную нажимается ? - а если это нужно делать каждые 15 минут - как это исполнить?

всем спасибо.






--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
Pfailed
Дата 8.4.2011, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На всех виденных мною хостингах есть cron.



--------------------
PM MAIL   Вверх
infarch
Дата 8.4.2011, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Запускать кроном или еще как, а веб интерфейс только отображает текущее состояние процесса, по определенным флагам.
PM MAIL   Вверх
OutlawZ
Дата 8.4.2011, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

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



Цитата

Кто как делает эти парсеры при помощи CGI?

Часто вижу, требуют написать парсер как модуль к CMS (ни пусть что это не Perl, а обычно PHP) все равно не могу понять - что для синхронизации данных (если парсер допустим имеет свой WEb интерфейс) какая то кнопка запуска вручную нажимается ? - а если это нужно делать каждые 15 минут - как это исполнить?

всем спасибо.


Тут все просто, если грабер скажем новостей для определенной CMS то я использую модуль HTML::Template т.е готовый шаблон CMS я вставляю свои теги где будет отображаться вывод работы грабера и загружаею его через HTML::Template после всех выполненных операций присваиваю значения переменным HTML::Template. 

Если нужно что бы код повторялся каждые 15 минут то тут я выставляют sleep и после redo. т.е вернуться в начало цикла для выполнения операции. так как обработку я делаю в цикле. 

Таким способом работал для форума SMF писал плагины для отображения новостей с других сайтов. т.е грабер работал как плагин smile

Это сообщение отредактировал(а) OutlawZ - 8.4.2011, 22:55


--------------------
user posted image
user posted image
PM MAIL   Вверх
Wooster
Дата 13.4.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кто-нибудь юзает HTML::TreeBuilder для парсинга HTML? 
PM MAIL WWW   Вверх
burakov
Дата 13.4.2011, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я отказался от парсинга при помощи стандартных модулей (наверное в силу того, что сложно разобраться).
по моему легче регексп написать и разбирать - как тебе надо, выдергивать нужные куски


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
infarch
Дата 14.4.2011, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да уж, ёмкая причина. Я вот не поленился исследовать HTML::TreeBuilder::XPath, теперь время разработки сокращается во много раз.
PM MAIL   Вверх
burakov
Дата 14.4.2011, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот подскажите еще по технологии.
Допустим итернет-магазин, часто построен так

категория - список товаров - товар (описание)
чем отследить такое вот сочетание.

1. Ну один способ  я делал имя файла, в котором хранится контент =  url на этот контент,   если ссылки логичные , то они друг в друга вложены - можно понять, что к чему относится
А бывает так, что ссылки на товар никак ни похожи на ссылки на список товаров или категорию и тексты в списке товаров не встречаются в описании товаров), то есть привязаться никак нельзя - как в таком случае грабить, чтобы так сказать дерево сайта (структуру) сохранить?




--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
infarch
Дата 14.4.2011, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну можете по папкам раскидать, если уж обязательно хотите в файлах данные хранить.
PM MAIL   Вверх
burakov
Дата 14.4.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В том то и дело что не пойму как это сделать.
Сейчас поясню на примере ...

ссылка на меню /avto/
далее на список модели /avto/vaz/
далее уже на товар /avto/vaz/lada-kalina

таким образом заложив урл в имя файла, куда стянут контент
avto_vaz_lada-kalina.htm можно построить типа дерева, карты сайта, ну или по крайней мере знать 
кому что принадлежит - удобно при разборе.

а бывает вот так
ссылка на меню /?menu=1231245
ссылка на категорию /?cat=324234
ссылка на товар /?goods=677878678

Получается нужно при грабке как то отслеживать что куда вложено , то есть нужно дерево даже не html Страницы, а всего сайта построить... может какое то готовое решение есть?
Иногда на допустим /?goods=677878678 информации достаточно для извлечения, но иногда 
заказчик требует информации и из списка /?cat=324234. Часто бывает что этом списке есть уникальное сочетание (наименование модели), которое одинаково и в /?goods=677878678 (описании товара), ну тогда понятно как делать.

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





--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


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

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


 




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


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

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