O que é um rastreador e um caso de entrada
O rastreador da Web é um programa ou script que rastreia automaticamente informações na World Wide Web de acordo com certas regras
Introdução aos rastreadores da web
Na era do big data, a coleta de informações é uma tarefa importante, e os dados na Internet são massivos. Se a informação for coletada apenas por mão de obra, ela não será apenas ineficiente e complicada, mas também aumentará o custo da coleta. Como obter de forma automática e eficiente a informação que nos interessa na Internet e usá-la para nós é um problema importante, e a tecnologia crawler nasce para resolver esses problemas.
Os rastreadores da web também são chamados de robôs da web, que podem coletar e organizar automaticamente dados e informações na Internet, em vez de nas pessoas. É um programa ou script que captura automaticamente informações na World Wide Web de acordo com certas regras, e pode coletar automaticamente todo o conteúdo da página que pode acessar para obter dados relevantes.
Em termos de função, os rastreadores geralmente são divididos em três partes: coleta, processamento e armazenamento de dados. O rastreador começa a partir do URL de uma ou várias páginas da web iniciais e obtém o URL da página da web inicial. No processo de rastreamento da página da web, ele extrai continuamente novos URLs da página atual e os coloca na fila até uma determinada condição de parada de o sistema é atendido.
Programa de entrada do rastreador
Preparação do ambiente
Crie o projeto Maven itcast-crawler-first e adicione dependências a pom.xml
<dependencies>
<!-- HttpClient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
Adicionar log4j.properties
log4j.rootLogger=DEBUG,A1
log4j.logger.cn.itcast = DEBUG
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
Escreva o código
Escreva o rastreador mais simples, rastreie a página inicial do Sohu: http://news.sohu.com/
public static void main(String[] args) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://news.sohu.com/");
CloseableHttpResponse response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() == 200) {
String content = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(content);
}
}
Resultado do teste: os dados da página podem ser obtidos