Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 к нему, вставляешь выражение в свой код и потрошишь его дальше как хочешь. Быстро, просто и надежно. |