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>