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

OSCHINA-MIRROR/shentong_012-YayCrawler

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

YayCrawler: проект по обмену опытом в области технологий краулеров

Приветствуем вас присоединиться к группе для обсуждения YayCrawler! Быстрое начало работы!

Цель проекта

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

Основные функции

YayCrawler представляет собой полноценный распределённый фреймворк краулера, разработанный на основе WebMagic. Фреймворк имеет следующие особенности:

  1. Полностью распределён: состоит из компонентов Admin (администратор), Master (мастер) и множества Worker (рабочих). Эти компоненты взаимодействуют через протокол HTTP.
  2. Полностью конфигурируемый: через страницу конфигурации на Admin можно настроить правила для сбора данных с любого сайта. Конечно, сложность разных сайтов отличается, и для решения проблем, таких как вход на сайт, проверка кода и блокировка IP, используются разные компоненты.
  3. Масштабируемая очередь задач: очередь задач реализована с использованием Redis. В зависимости от состояния задачи существует четыре типа очередей: начальная, выполняемая, успешная и неудачная. Вы также можете расширить различные алгоритмы планирования задач, по умолчанию используется справедливое планирование.
  4. Настраиваемый способ сохранения данных: по умолчанию данные сбора сохраняются в MongoDB, изображения загружаются на файловый сервер. Вы можете расширить другие типы хранилищ.
  5. Стабильность и отказоустойчивость: все задачи краулера будут повторяться и записываться. Только после успешного выполнения задача будет перемещена в очередь успешных задач. При неудачном выполнении будет записана причина неудачи.

Выбор технологий ● Основной фреймворк: Webmagic Spring boot. ● Планирование задач: Spring + Quartz. ● Фреймворк постоянного слоя: Spring Jpa. ● База данных и пул соединений: Alibaba Druid MongoDB MySql. ● Кэш-фреймворк: Redis Ehcache. ● Управление журналами: SLF4J, Log4j2. ● Фронтенд-фреймворк: Bootstrap + Jquary.

Конфигурация среды разработки

  1. Установите JDK8.
  2. Установите базу данных MySQL для хранения правил анализа и других данных. Создайте экземпляр базы данных «yayCrawler» и выполните скрипт quartz.sql (доступен в пакете выпуска или исходном коде).
  3. Установите Redis.
  4. Установите MongoDB для хранения данных результатов.
  5. Установите FTP-сервер (необязательно) для хранения загруженных изображений.

Запуск

Импортируйте проект и установите модули Admin, Worker и Master с помощью команды maven install. Затем скопируйте сгенерированный Jar-файл в каталоги crawler.worker / deploy. Запомните настройки IP для Redis, MySQL и MongoDB в файле конфигурации. Нажмите start.bat для запуска.

(Linux & Windwos) java -jar worker.war --spring.config.location=worker_local.properties

Команда закрытия

(Windows) for /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e

Взаимодействие между компонентами

A. Admin Admin отвечает за конфигурацию правил страницы, конфигурацию сайта, управление ресурсами и публикацию задач. B. Master Master является центром управления распределённого краулера и отвечает за получение задач от Admin и распределение их рабочим. C. Worker Worker выполняет реальную работу, получая задачи от Master и выполняя их. Он периодически сообщает о своём состоянии Master.

Docker-образ: в разработке.

Номер группы разработчиков для обмена опытом: YayCrawler — обмен опытом в области краулеров 559745472.

Установка jar: https://gitee.com/shentong_012/G-Crawler.release.

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

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

Введение

Описание недоступно Развернуть Свернуть
LGPL-3.0
Отмена

Обновления

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

Участники

все

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

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