Caso de Desenvolvimento || Scheduler análise de componentes

Pronto para usar WebMagic realizar a função rastreamento de dados. Aqui é uma implementação mais completa.

Aqui nós conseguimos é focada web crawler, rastejando apenas dados de recrutamento relacionados.



Análise de Negócios

Para conseguir hoje está rastejando https://www.51job.com/ carros usados. Apenas rastreando informações "Software" e "Internet e-commerce", as duas indústrias

Primeiro acesso a página e pesquisa para as duas indústrias. Os resultados são como se segue

Clique na página de detalhes do trabalho, a nossa análise descobriu que há alguns página de detalhes de dados a serem buscados:

Título, nome da empresa, local de trabalho, salário, publicado, empregos, informações da empresa Informações da Empresa





tabela de banco

CREATE TABLE `job_info` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `company_name` VARCHAR(100) DEFAULT NULL COMMENT '公司名称',
  `company_addr` VARCHAR(200) DEFAULT NULL COMMENT '公司联系方式',
  `company_info` TEXT COMMENT '公司信息',
  `job_name` VARCHAR(100) DEFAULT NULL COMMENT '职位名称',
  `job_addr` VARCHAR(50) DEFAULT NULL COMMENT '工作地点',
  `job_info` TEXT COMMENT '职位信息',
  `salary_min` INT(10) DEFAULT NULL COMMENT '薪资范围,最小',
  `salary_max` INT(10) DEFAULT NULL COMMENT '薪资范围,最大',
  `url` VARCHAR(150) DEFAULT NULL COMMENT '招聘信息详情页',
  `time` VARCHAR(10) DEFAULT NULL COMMENT '职位最近发布时间',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='招聘信息';


processo de implementação

Necessidade de analisar a página anúncios de emprego, obter página de detalhes do trabalho, e, em seguida, analisar a página para obter dados.

Obter o endereço url do processo é o seguinte

Mas aqui há um problema: ao analisar a página, é provável que analisar o mesmo endereço de url (como o título do produto e produtos imagens hiperlinks e o mesmo url), se não for tratada, o mesmo processo muitas vezes irá analisar url desperdício de recursos. Então, precisamos ter uma função pesada url



Componente Scheduler

WebMagic fornece Scheduler pode nos ajudar a resolver o problema acima.

Scheduler é gerenciado componentes WebMagic da URL. Em geral, Programador inclui dois efeitos:

  • rastreamento de gerenciamento de fila URL deleite.

  • O URL para ser desduplicação rastreado.

WebMagic construiu várias Scheduler popular. Se você está apenas na implementação local do tamanho relativamente pequeno do réptil, em seguida, a necessidade básica de Scheduler costume, mas olhada em alguns Scheduler foi fornecido ou significativo.

Desduplicação sozinho tornou-se uma parte das interfaces abstratas: DuplicateRemover , então pode optar por ir uma maneira diferente, com um pesado Scheduler, para atender às diferentes necessidades, oferece atualmente duas maneiras de ir pesado.

RedisScheduler está definido Redis uso de de-pesado, o outro padrão Scheduler usa HashSetDuplicateRemover para ir pesado.

Se você estiver usando BloomFilter, devem ser aditadas as seguintes dependências:

 <!--WebMagic对布隆过滤器的支持-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>16.0</version>
        </dependency>

 

Publicado 434 artigos originais · ganhou elogios 105 · vê 70000 +

Acho que você gosta

Origin blog.csdn.net/qq_39368007/article/details/105047966
Recomendado
Clasificación