Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > Выбор высокоуровневой библиотеки для web-spider.


Автор: Alexk553 19.3.2012, 02:40
Собственно, хочу написать свой аналог таких программ, как Teleport Pro, Offline Explorer Enterprise который заточен под мои нужды. 
требуется библиотека, которая способна собирать URL из HTML с процессированием Javascript, с поддержкой авторизации, желательно и поддержка Flash.

Иными словами апи к браузеру. 
Рассматривал варианты:
Firefox API. Gecko на плюсах, то есть свой код надо писать на с++, что не очень хочется. Подключение же к джава коду довольно громоздко и я толком не разобрался , как это можно сделать.

http://lobobrowser.org/ :
три года назад прекращены обновления.

http://htmlunit.sourceforge.net/
показалочь тяжеловесным, но если у кого-то есть опыт работы, то мне было бы интересно.


типичная задача такая. Есть сайт с галереями картинок. Нужно скачать картинки, и переименовать их в соответствии с подписями к ним, правильно распихать по каталогам, возможно отдельно сохранить тексты с описаниями. Или , например, скачать все картинки всех друзей или сообщества вконтакте, правильно из назвав, правильно рассортировав их по каталогам. И тому подобные применения. алоритм простой, как доска: вручную задаются этапы обработки регулярками, задаётся как, к какой последовательности что собирать. Для каждого сайта свой миниалгоритм. ГУИ не нужно.

С нуля не хочется писать.

Автор: LSD 19.3.2012, 15:18
Посмотри http://java-source.net/open-source/crawlers.

Автор: Temdegon 12.4.2012, 01:37
Htmlunit подходит для 80% случаев. Т.е. на странице корректно отработает JavaScript и Ajax, и дальше делать можно все что хочешь. Но несколько раз сталкивался с ситуацией, когда этот самый JavaScript где-то валится, и нифига не работает. Как-то повлиять на ситуацию возможности пратически нет. Ибо разобраться в чужом упакованом JS-коде...бррр, лучше даже не пытаться.
По моему опыту для этих целей идеально подходит Selenium.
API проще некуда http://code.google.com/p/selenium/wiki/GettingStarted , даже ребенок разберется, как авторизоваться вконтактике с его помощью.
В качестве движка он может использовать все тот же Htmlunit, тогда ему не нужен гуй. Либо, для тех самых 20% случаев, когда htmlunit почему-то не работает, можно подключить его к реальному браузеру, и тут уж сайт никуда не денется.
Лично я всегда использовал селениум именно в качестве java-либы. Но, как я понимаю, это готовый самодостаточный инструмент. там есть спец IDE и плагин к браузеру, позволяющие автоматизировать операции в бразуере кликая мышью или с помощью скриптового язычка. Так что возможно ничего и писать не нужно, просто разобраться как им пользоваться.
P.S.> Регулярки для парсинга html это прошлый век. HTMLUnit и Selenium поддерживают XPath и кучу всяких других возможностей поиска элементов страницы. Даже париться не надо: запускаешь FireBug, тыкаешь нужный div или там table, FB говорит тебе XPath к нему, вставляешь выражение в свой код и потрошишь его дальше как хочешь. Быстро, просто и надежно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)