1.1. Хорошая расширяемость, развязка между различными модулями, отлично подходит для разработки собственных фреймворков для парсинга.
1.2. Простота использования и настройки, можно настроить использование браузерного эмулятора для реального сбора данных, проект очень лёгкий.
1.3. Можно настроить многопоточность, определить глубину парсинга, автоматически фильтровать повторяющиеся URL.
1.4. По сравнению с традиционными инструментами для парсинга, Slit может решать проблемы динамических страниц (включая AJAX-страницы), работы с cookie, логина и т. д.
2.1. Модуль Fetcher отвечает за извлечение URL из очереди, загрузку страниц и помещение результатов в очередь уже загруженных страниц.
2.2. Модуль Analyzer отвечает за извлечение нужных результатов из уже загруженных страниц, помещение их в очередь результатов сбора и поиск других ссылок на странице для помещения в очередь URL.
2.3. Модуль Store отвечает за обработку результатов из очереди результатов, в соответствии с пользовательскими настройками.
3.1. Определите класс, наследующий AbstractNodeFilter, и реализуйте метод accept() для извлечения узлов со страницы. Пользователи могут определять, какие результаты они хотят извлекать.
3.2. Определите класс, наследующий AbstractFileStore, и реализуйте метод processResultNode() для обработки результатов сбора.
3.3. Запустите проект Slit:
Config config = new Config();
config.setStartUrlList(Arrays.asList("https://git.oschina.net/explore/recommend")); // список URL для сбора
config.setNodeFilterClass(MyNodeFilter.class); // пользовательский класс
config.setFileStoreClass(MyFileStore.class); // пользовательский класс
InitSlit slit = new InitSlit(config);
slit.start(); // запуск, можно настроить количество потоков для разных модулей
4.1. Определите класс, наследующий AbstractNodeFilter, и реализуйте метод accept() для извлечения узлов со страницы.
4.2. Определите класс, наследующий AbstractFileStore, и реализуйте метод processResultNode() для обработки результатов.
4.3. Определите класс, наследующий AbstractBrowserAction, и реализуйте метод userBrowserAction() для определения поведения браузерного сбора.
4.4. Используйте Chrome-браузер и скачайте соответствующий веб-драйвер для вашей системы с сайта chromedriver.storage.googleapis.com.
4.5. Запустите проект Slit:
Config config = new Config();
config.setNodeFilterClass(MyBrowserNodeFilter.class); // пользовательский класс
config.setFileStoreClass(MyBrowserFileStore.class); // пользовательский класс
config.setInBrowser(true); // включить браузерный режим
config.setBrowserAction(MyBrowserAction.class); // пользовательский класс
config.setBrowserDriverPath("/"); // путь к веб-драйверу
InitSlit init = new InitSlit(config);
init.start();
5.1. Slit зависит от двух JAR-пакетов: «org.htmlparser:htmlparser:2.1» и «org.seleniumhq.selenium:selenium-java:2.45.0», а также от некоторых других пакетов для логирования и т. п.
5.2. Различные модули работают совместно через потокобезопасные неблокирующие очереди.
В папке src/test/lib проекта уже содержатся следующие JAR-пакеты:
Демоверсии доступны в разделе test. Вы можете использовать их как пример для самостоятельного изучения. Для обсуждения вопросов и обмена опытом присоединяйтесь к нашему сообществу, номер группы: 213109134.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )