1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qifeifei-Slit

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Открытый фреймворк для парсинга Slit

1. Особенности Slit

1.1. Хорошая расширяемость, развязка между различными модулями, отлично подходит для разработки собственных фреймворков для парсинга.

1.2. Простота использования и настройки, можно настроить использование браузерного эмулятора для реального сбора данных, проект очень лёгкий.

1.3. Можно настроить многопоточность, определить глубину парсинга, автоматически фильтровать повторяющиеся URL.

1.4. По сравнению с традиционными инструментами для парсинга, Slit может решать проблемы динамических страниц (включая AJAX-страницы), работы с cookie, логина и т. д.

2. Основные модули проекта Slit

2.1. Модуль Fetcher отвечает за извлечение URL из очереди, загрузку страниц и помещение результатов в очередь уже загруженных страниц.

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

2.3. Модуль Store отвечает за обработку результатов из очереди результатов, в соответствии с пользовательскими настройками.

3. Использование Slit

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. Использование Slit с браузерным эмулятором

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. Технологии, используемые в Slit

5.1. Slit зависит от двух JAR-пакетов: «org.htmlparser:htmlparser:2.1» и «org.seleniumhq.selenium:selenium-java:2.45.0», а также от некоторых других пакетов для логирования и т. п.

5.2. Различные модули работают совместно через потокобезопасные неблокирующие очереди.

6. Список используемых JAR-пакетов

В папке src/test/lib проекта уже содержатся следующие JAR-пакеты:

  • «commons-lang:commons-lang:2.6»;
  • «org.htmlparser:htmlparser:2.1»;
  • «org.seleniumhq.selenium:selenium-java:2.45.0»;
  • «ch.qos.logback:logback-classic:1.1.3»;
  • «org.codehaus.groovy:groovy:2.4.3»;
  • «org.slf4j:slf4j-api:1.7.12»;
  • «org.slf4j:jcl-over-slf4j:1.7.12».

7. Демоверсии Slit и способы запуска

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

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Расширяемый и лёгкий открытый исходный код фреймворка для парсинга данных Slit. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/qifeifei-Slit.git
git@api.gitlife.ru:oschina-mirror/qifeifei-Slit.git
oschina-mirror
qifeifei-Slit
qifeifei-Slit
master