Специализированный спайдер/грабер
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Специализированный спайдер/грабер
в общем не знаю как эту фигню назвать, но подозреваю что устоявшийся термин должне быть.
Задача выдирать из нескольких заранее известных сайтов (но число и дизайн которых может время от времени менятся) определенную информацию, скажем прайслисты с целью последующей обработки.
Задача довольно типичная, наверняка кто-то пошел чуть дальше поиска в тексте ключевых слов/ узлов распарсенного html-дерева.
Интересует все - библиотеки, десктопные (win), серверные (Java, Perl, PHP) продукты. Опыт выполнения подобных проетов на заказ etc.
Задача выдирать из нескольких заранее известных сайтов (но число и дизайн которых может время от времени менятся) определенную информацию, скажем прайслисты с целью последующей обработки.
Задача довольно типичная, наверняка кто-то пошел чуть дальше поиска в тексте ключевых слов/ узлов распарсенного html-дерева.
Интересует все - библиотеки, десктопные (win), серверные (Java, Perl, PHP) продукты. Опыт выполнения подобных проетов на заказ etc.
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Sergey_P wrote:Вроде смутно припоминаю когда года полтора зазад искал попаалось пара опэн сурс проектов.. может кто из них выжил
http://www.opensourcetesting.org/
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: Специализированный спайдер/грабер
Sergey_P wrote:в общем не знаю как эту фигню назвать, но подозреваю что устоявшийся термин должне быть.
Задача выдирать из нескольких заранее известных сайтов (но число и дизайн которых может время от времени менятся) определенную информацию, скажем прайслисты с целью последующей обработки.
Задача довольно типичная, наверняка кто-то пошел чуть дальше поиска в тексте ключевых слов/ узлов распарсенного html-дерева.
Интересует все - библиотеки, десктопные (win), серверные (Java, Perl, PHP) продукты. Опыт выполнения подобных проетов на заказ etc.
Прошел ето дело неоднократно.
Конкретно сейчас есть сурс для Виндовс (разница - чисто сокет, там STL кругом).
ХТМЛ Парсер ну и там извлекает все линки и древья создает - если надо - свистите - не уверен правда, что он под боком. В худшем случае - в понедельник могу.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 793
- Joined: 02 Apr 2002 10:01
Re: Специализированный спайдер/грабер
Sergey_P wrote:в общем не знаю как эту фигню назвать, но подозреваю что устоявшийся термин должне быть.
Задача выдирать из нескольких заранее известных сайтов (но число и дизайн которых может время от времени менятся) определенную информацию, скажем прайслисты с целью последующей обработки.
Задача довольно типичная, наверняка кто-то пошел чуть дальше поиска в тексте ключевых слов/ узлов распарсенного хтмл-дерева.
Интересует все - библиотеки, десктопные (вин), серверные (Ява, Перл, ПХП) продукты. Опыт выполнения подобных проетов на заказ етц.
Паша Сенаторов вроде хотел такую штуку сделать, год-два назад. Далеко ли продвинулся - понятия не имею.
-
- Уже с Приветом
- Posts: 1346
- Joined: 22 Sep 2001 09:01
- Location: Dallas TX, USA
Re: Специализированный спайдер/грабер
Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
Ключевое слово - WebBrowser Control
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Re: Специализированный спайдер/грабер
Volant wrote:Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
Наш ответ:
/usr/bin/perl
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: Специализированный спайдер/грабер
Volant wrote:Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
мысль интересная.
а что ето за вебконтроль:
я так понимаю рефреши и редиректы он хендлит нормально. А вот яваскрипт меню - он маусмув появляющие - тоже?
Для частной задачи наверное хороший вариант, как генерал - нет полного контроля над сурсом и то, что будет подсунуто Нетскейпу можно пропустить.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 122
- Joined: 20 Jan 2003 04:59
- Location: Albany, NY
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
A. Fig Lee wrote:Прошел ето дело неоднократно.
Конкретно сейчас есть сурс для Виндовс (разница - чисто сокет, там STL кругом).
ХТМЛ Парсер ну и там извлекает все линки и древья создает - если надо - свистите - не уверен правда, что он под боком. В худшем случае - в понедельник могу.
Я в С с крестами не силен.. так сказать "читаю со словарем" т.е. чисто в образоваельных целях вроде чтения книжек с примерами на с++.
Так что пригодится только прикидка - сколько такой проект займет (T & $)
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
UFOpassenger wrote:Паша Сенаторов вроде хотел такую штуку сделать, год-два назад. Далеко ли продвинулся - понятия не имею.
Как бы мне до этого Паши дозвонится там или еще как законтачить?
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
Volant wrote:Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
И что за час так чтоб не нужно было переписавать каждый раз как после login& password решат не сразу прайс лист показать, а еще поинтересоватся "нужен последний или за определенный месяц текущего/прошлого года?"
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
A. Fig Lee wrote:Volant wrote:Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
мысль интересная.
а что ето за вебконтроль:
я так понимаю рефреши и редиректы он хендлит нормально. А вот яваскрипт меню - он маусмув появляющие - тоже?
Я так понимаю это IE собственной персоной - берешь VB на перевес, ваяешь GUI и "ВасяПупкинНафигажтор" готов
Беглое гугление показало, что у ребят не имеющих проблем с чтением документации проблемы довольно экзотические вроде загрузки JVM.. впрочем наверно можно попотеть пока нацдешь как ему конфигурацию проксей установить, итд.
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
SergeN wrote:Ну я пару лет назад эстрактор делал для всяких там желтых страниц на ВБ 6.0. Он был с нестраиваемые схемами, ну типа, если yahoo поменял дизайн, то сам заготовку для yahoo меняешь и дальше данные вынимаешь.
Правда этот проект за час не удалось сделать
Короче за ящик пива сорсы могу поискать.
А за сколько получилось?
Насколько сложно сменить заготовку? (Как по времени так и по скилам - VB, regular expressions, script, HTML..?)
-
- Новичок
- Posts: 38
- Joined: 07 Aug 2002 05:55
- Location: Vancouver, Canada
Re: Специализированный спайдер/грабер
A. Fig Lee wrote:Volant wrote:Такой паучек пишется за час на .... VB6.0.
Ключевое слово - WebBrowser Control
мысль интересная.
а что ето за вебконтроль:
я так понимаю рефреши и редиректы он хендлит нормально. А вот яваскрипт меню - он маусмув появляющие - тоже?
Для частной задачи наверное хороший вариант, как генерал - нет полного контроля над сурсом и то, что будет подсунуто Нетскейпу можно пропустить.
Если знаком с VB и WebBrowser Control, то пишется быстро. Не за час, конечно... за день, пожалуй. Я участвовал в написании подобного для www.newman.ru ешё в 99-м (был проект по каталогизации freeware & shareware software)... в 2002-м у меня был годовой контракт с www.careerexchange.com (искал для них некую специфицную для бизнеса информацию)... сейчас пишу подобное уже для себя (свой проект).
Обработка html, обход веб-сайта - это все просто. Взять WebBrowser Control и посмотреть что и как он делает. Но вот с распознаванием необходимой информации сложнее. Когда сайт (скажет какой-то каталог) большой, структура его "листьев" с интересующей информацией известна, то здорово. Находи в html группы необходимых тегов и выдирай информацию. А вот когда нужно обработать произвольную страничку "Contact Us" с корректным распознаванием адреса, телефонов, контактных лиц... Я писал сугубо эмпирический алгоритм, не замахиваясь на слишком большую универсальность.
Смотри что тебе надо. Сколько времени ты готов положить на разработку алгоритма распознавания и какой процент ошибок допустим.
И еще. WebBrowser Control достаточно тормозная штука, сайты тоже тормозят. Например, просканировать весь monster.com - это 1-2 дня. Если объемы велики, то ну;но запускать 10+ потоков одновременно... если сканишь сайт, на котором robots.txt запрещает это делать, то будь готов, что IP машины с которой шло сканирование скоро окажется забаненым... еще бываю сайты на которых специално предусмотрены меры против таких "умников", сканирующих информацию... в общем если в это ввязаться, то это на года...
Удачи
-
- Новичок
- Posts: 38
- Joined: 07 Aug 2002 05:55
- Location: Vancouver, Canada
Re: Специализированный спайдер/грабер
Sergey_P wrote:UFOpassenger wrote:Паша Сенаторов вроде хотел такую штуку сделать, год-два назад. Далеко ли продвинулся - понятия не имею.
Как бы мне до этого Паши дозвонится там или еще как законтачить?
Паша Сенаторов - бывший модератор фидошной эхи MO.JOB.TALK.
Попробуй поспрашивать в ньюсах - fido7.mo.job.talk и fido7.russian.z1. У Тутубалина спроси, он может знать. А может и нет .
-
- Уже с Приветом
- Posts: 1071
- Joined: 18 Nov 2003 22:53
- Location: MA
Re: Специализированный спайдер/грабер
None of the above wrote:И еще. WebBrowser Control достаточно тормозная штука, сайты тоже тормозят. Например, просканировать весь monster.com - это 1-2 дня. Если объемы велики, то ну;но запускать 10+ потоков одновременно... если сканишь сайт, на котором robots.txt запрещает это делать, то будь готов, что IP машины с которой шло сканирование скоро окажется забаненым... еще бываю сайты на которых специално предусмотрены меры против таких "умников", сканирующих информацию... в общем если в это ввязаться, то это на года...
Удачи
Я вот хотел такую вещь сделать - я сейчас ищу работу, периодически (чем чаще, тем лучше) приходтся заходить на сайты и обновлять свое резюме. Просто добавляю точку или убираю. Вот думал, как это дело автоматизировать, может уже есть что-то для этого заточенное? Ну и выдирать работы было бы неплохо, но это не главное, главное - обновлять.
-
- Новичок
- Posts: 38
- Joined: 07 Aug 2002 05:55
- Location: Vancouver, Canada
Re: Специализированный спайдер/грабер
testuser wrote:Я вот хотел такую вещь сделать - я сейчас ищу работу, периодически (чем чаще, тем лучше) приходтся заходить на сайты и обновлять свое резюме. Просто добавляю точку или убираю. Вот думал, как это дело автоматизировать, может уже есть что-то для этого заточенное? Ну и выдирать работы было бы неплохо, но это не главное, главное - обновлять.
Есть сервисы по размещению резюме на "большом" количестве сайтов типа монстра. В составе пакета услуг этих сервисов было и то, о чем ты спрашиваешь. Где конкретно - не помню, но было точно... их десятки - этих сервисов... ищи...
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
testuser wrote:Я вот хотел такую вещь сделать - я сейчас ищу работу, периодически (чем чаще, тем лучше) приходтся заходить на сайты и обновлять свое резюме. Просто добавляю точку или убираю. Вот думал, как это дело автоматизировать, может уже есть что-то для этого заточенное? Ну и выдирать работы было бы неплохо, но это не главное, главное - обновлять.
Для сугубо личной персональной нужды можно скачать скажем демоверсию тестера веб-приложений.. Проходиш раз вручную, все шаги записываются, составляешь формулу, файл (или табличку) с изменяемыми параметрами и сценарий теста (типа раз в 30 мин отрабатывать №1 раз в 50 мин №2)
потом кроме регулярно обновляемого резюме будет еще диаграмма отклика монстра
-
- Уже с Приветом
- Posts: 2019
- Joined: 22 Jul 2000 09:01
Соединиться с сайтом, ввести пароль и содрать информацию можно примерно так: Используется авторизация по cookie.
Останется распарсить, но тут уже стандарта, естественно, нет. При изменении структуры сайты парсер придётся переделать. Удобно было бы скачать сразу в XML, но кто же даст!
Останется распарсить, но тут уже стандарта, естественно, нет. При изменении структуры сайты парсер придётся переделать. Удобно было бы скачать сразу в XML, но кто же даст!
Code: Select all
#!/usr/bin/perl
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use HTTP::Cookies;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0');
$ua->cookie_jar(HTTP::Cookies->new(file => "cookies.txt", autosave => 1, ignore_discard => 1));
# and then send requests just as you used to do
$res = $ua->request(HTTP::Request->new(GET => "http://www.some.com/"));
my($req) = POST 'http://www.some.com/js/LoginHandler',
[dateID => 'user', password => 'secret'];
$content = $ua->request($req)->as_string;
print $content, "\n";
# and then send requests just as you used to do
$res1 = $ua->request(HTTP::Request->new(GET => "http://www.some.com/main.jsp"));
print $res1->as_string, "\n";
# another request
$res1 = $ua->request(HTTP::Request->new(GET => "http://www.some.com/js/Info"));
print $res1->as_string, "\n";
-
- Уже с Приветом
- Posts: 20297
- Joined: 01 Dec 2003 23:16
- Location: Russia->USA
Frank wrote:Соединиться с сайтом, ввести пароль и содрать информацию можно примерно так: Используется авторизация по cookie.
Останется распарсить, но тут уже стандарта, естественно, нет. При изменении структуры сайты парсер придётся переделать. Удобно было бы скачать сразу в XML, но кто же даст!
Мало ли чего не даст из html в xhtml не так уж и сложно преобразовать - тени позакрывал да внеочередные закрытия со спец символами поправил.. фан начнется когда пойдет JavaScript... вот тут, насколько я понимаю, перлу капут
или есть какой LWP::UserAgent:ECMAScripEngine ?
Да и что в джаве он есть силно сомневаюсь
-
- Уже с Приветом
- Posts: 5280
- Joined: 01 Nov 2000 10:01
- Location: (RU->WA->NJ->?)
Re: Специализированный спайдер/грабер
None of the above wrote:И еще. WebBrowser Control достаточно тормозная штука, сайты тоже тормозят. Например, просканировать весь monster.com - это 1-2 дня. Если объемы велики, то ну;но запускать 10+ потоков одновременно... если сканишь сайт, на котором robots.txt запрещает это делать, то будь готов, что IP машины с которой шло сканирование скоро окажется забаненым... еще бываю сайты на которых специално предусмотрены меры против таких "умников", сканирующих информацию... в общем если в это ввязаться, то это на года...
С парсингом особых проблем быть недолжно (кроме переделывания с каждым новым диайном), а вот соревнование брони и снарядов вполне вероятно
С одной стороны есть мнение что информацией делится незахотят (но и по закону запретить не могут) с другой сайт(ы) не интранетовские и посещаемые
посему существенную часть аудитории пугать необходимым AсtivX или аплетом небудут, а вот JavaScript (v. IE 4&up, NN 4) могут забацать..
С одной столроны есть естественное желание Java-нуть, с другой если генерить будут JavaScript-ом динамически (врядли, но возможно) то альтернативы WebBrowser Control невидно
-
- Уже с Приветом
- Posts: 2019
- Joined: 22 Jul 2000 09:01
Какой-такой капут с JavaScript. Придётся просто вырезать строки из document.write и собирать их самому, ну ещё подменять может функции JavaScript.
Да, бывают статьи про то, как всё закодировать, чтобы не всё так легко было. Но кому шибко надо, тот всегда проведёт reverse engineering.
Но этим они уже предупреждают: низзя!
Сам обычно кодирую свой e-mail на страничках с помощью JavaScript. Так что, если вы делаете граббер e-mailов, это не есть хорошо. И так порнушники и спаммеры больше всего наживаются на Интернет.
Да, бывают статьи про то, как всё закодировать, чтобы не всё так легко было. Но кому шибко надо, тот всегда проведёт reverse engineering.
Но этим они уже предупреждают: низзя!
Сам обычно кодирую свой e-mail на страничках с помощью JavaScript. Так что, если вы делаете граббер e-mailов, это не есть хорошо. И так порнушники и спаммеры больше всего наживаются на Интернет.