Распределенная система сканирования YayCrawler, простая в использовании, расширенная настройка. Он расширяем, снижает рабочую нагрузку на разработку, может быть докеризован и адаптируется к различным насущным потребностям: WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap +. Jquery и т. д.
В меру своих возможностей максимизируем производительность разработчиков веб-сканеров, что является глотком свежего воздуха в среде сканеров.
Полная распределенная среда сканирования, разработанная на основе WebMagic. Характеристики этой среды следующие:
1. Полностью распределенный: он состоит из терминала управления (администратора), диспетчерского терминала (главного) и нескольких рабочих компонентов. Каждый компонент обменивается данными через протокол HTTP.
2. Полностью настраиваемый: данные с любого веб-сайта можно сканировать с помощью правил конфигурации страницы на стороне администратора. Конечно, сложность разных веб-сайтов различна, и для решения таких проблем, как вход в систему, код подтверждения, IP-адрес, будут разные компоненты. блокировка и т.д.
3. Масштабируемая очередь задач. Очередь задач реализована Redis. В зависимости от статуса задачи существует четыре различных очереди задач: начальная, выполняемая, успешная и неудачная. Вы также можете расширить различные алгоритмы планирования задач, по умолчанию используется справедливое планирование.
4. Определяемый метод сохранения: в результатах сканирования данные атрибутов по умолчанию сохраняются в MonogoDB, а изображения загружаются на файловый сервер. Конечно, вы можете расширить дополнительные типы хранения.
5. Стабильность и отказоустойчивость. Любая задача сканера будет повторена и записана. Только в том случае, если задача действительно успешна, она будет перемещена в очередь успеха. Сбой будет содержать описание причины сбоя.
Основная платформа: загрузка Webmagic Spring.
Планирование задач: Пружина + Кварц
Структура уровня сохраняемости: Spring Jpa
База данных и пул соединений: Alibaba Druid MongoDB MySql
Платформа кэширования: Redis Ehcache.
Управление журналами: SLF4J, Log4j2.
Интерфейсный фреймворк: Bootstrap + Jquary.
1. Установите JDK8.
2. Установите базу данных mysql для хранения данных, таких как правила синтаксического анализа. Вам необходимо создать экземпляр базы данных «yayCrawler» и выполнить сценарий базы данных, связанный с кварцем: кварц.sql (см. пакет выпуска или исходный код).
3.Установите Редис
4. Установите mongoDB для хранения данных результатов.
5. Установите программное обеспечение ftp-сервера ftpserver (необязательно, используется для хранения загруженных изображений)
Импортируйте проект, установите maven, чтобы установить модули Admin, Worker, Master. Затем скопируйте созданный Jar в каталог Crawler.worker/deploy. Не забудьте изменить IP-адрес Redis и mysql mogodb в файле конфигурации и нажмите start.bat, чтобы начать.
(Linux и Windows) java -jar worker.war --spring.config.location=worker_local.properties
команда закрытия
(Windows) для /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do Taskkill /f /pid %%e
1. Администратор. Уровень администратора в основном отвечает за настройку правил извлечения страниц, конфигурацию сайта страницы, управление ресурсами и выпуск задач.
2. Мастер — это центр управления распределенным краулером. Он принимает задачи, выпущенные Администратором, и назначает задачи работникам для выполнения.
2.1. Получать задания на публикацию.
2.2. Принять регистрацию работника
3. Рабочий – трудолюбивый молодой человек, который действительно делает дела. Он принимает и выполняет задания, поставленные Мастером, и регулярно сообщает Мастеру о своем сердцебиении.