Sistema rastreador distribuído YayCrawler, simples de usar, configuração avançada. É extensível, reduz a carga de trabalho de desenvolvimento, pode ser dockerizado e se adapta a várias necessidades urgentes de estruturas principais: WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap +. Jquery, etc.
Da melhor forma possível, maximizar a produtividade dos desenvolvedores de rastreadores da web, o que é uma lufada de ar fresco na estrutura do rastreador.
Uma estrutura completa de rastreador distribuído desenvolvida com base no WebMagic. As características desta estrutura são as seguintes:
1. Completamente distribuído: Consiste no terminal de gerenciamento (Admin), no terminal de despacho (Master) e em vários trabalhadores. Cada componente se comunica através do protocolo HTTP.
2. Totalmente configurável: os dados de qualquer site podem ser rastreados por meio das regras de configuração da página no lado do administrador. É claro que a dificuldade de diferentes sites é diferente e haverá diferentes componentes para lidar com questões como login, código de verificação, IP. bloqueio, etc
3. Fila de tarefas escalável: A fila de tarefas é implementada pelo Redis. Existem quatro filas de tarefas diferentes de acordo com o status da tarefa: inicial, em execução, bem-sucedida e com falha. Você também pode estender diferentes algoritmos de agendamento de tarefas, o padrão é agendamento justo.
4. Método de persistência definível: nos resultados do rastreamento, os dados do atributo são persistidos no MonogoDB por padrão e as imagens serão baixadas para o servidor de arquivos. Claro, você pode expandir mais tipos de armazenamento.
5. Estabilidade e tolerância a falhas: Qualquer tarefa do rastreador será repetida e registrada. Somente quando a tarefa for realmente bem-sucedida ela será movida para a fila de sucesso.
Estrutura principal: inicialização Webmagic Spring
Agendamento de tarefas: Spring + Quartz
Estrutura da camada de persistência: Spring Jpa
Banco de dados e pool de conexões: Alibaba Druid MongoDB MySql
Estrutura de cache: Redis Ehcache
Gerenciamento de logs: SLF4J, Log4j2
Estrutura front-end: Bootstrap + Jquary
1.Instale o JDK8
2. Instale o banco de dados mysql para armazenar dados, como regras de análise. Você precisa criar uma instância de banco de dados "yayCrawler" e executar o script de banco de dados relacionado ao quartzo: quartz.sql (consulte o pacote de lançamento ou código-fonte).
3.Instale o redis
4. Instale o mongoDB para armazenar dados de resultados
5. Instale o software do servidor FTP ftpserver (opcional, usado para armazenar imagens baixadas)
Importe o projeto, maven install para instalar os módulos Admin, Worker, Master. Em seguida, copie o Jar gerado para o diretório crawler.worker/deploy Lembre-se de alterar o IP do Redis e mysql mogodb no arquivo de configuração e clique em start.bat para iniciar.
(Linux e Windows) java -jar trabalhador.war --spring.config.location=worker_local.properties
comando fechar
(Windows) para /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e
1. Admin A camada Admin é responsável principalmente pela configuração das regras de extração de páginas, configuração do site da página, gerenciamento de recursos e liberação de tarefas.
2. Master é o centro de controle do rastreador distribuído. Ele aceita tarefas liberadas pelo Admin e atribui tarefas aos trabalhadores para execução.
2.1. Receba tarefas de publicação
2.2. Aceitar registro de trabalhador
3. Trabalhador é um jovem trabalhador que realmente faz as coisas. Ele aceita e executa as tarefas atribuídas pelo Mestre e reporta regularmente o seu batimento cardíaco ao Mestre.