java_网路爬虫_0

使用idea创建maven工程,pom.xml文件



    4.0.0

    org.example
    crawler
    1.0-SNAPSHOT

    
        1.8
        1.8
        UTF-8
    

    
        org.apache.httpcomponents
        httpclient
        4.5.13
    
    
        org.slf4j
        slf4j-log4j12
        1.7.25
    
    
        org.jsoup
        jsoup
        1.15.3
    
    
        org.apache.commons
        commons-lang3
        3.7
    
    
        commons-io
        commons-io
        2.7
    

log4j.properites文件
#这些是Log4j的配置指令,Log4j是一个用于Java项目的强大的日志记录库。让我们一步步来解析:
#
#log4j.rootLogger=DEBUG,A1: 这条指令设定了Log4j的根记录器,即默认记录器。
#在 Log4j 中,根记录器(root logger)是一个特殊的记录器,它负责管理所有其他记录器的行为。当你使用 Log4j
# 进行日志管理时,你通常会为应用程序的每个部分创建单独的记录器。这些记录器会根据其配置进行日志记录,
# 但它们的行为通常是由根记录器控制的。
#
#根记录器可以设置全局的日志级别(例如,DEBUG,INFO,WARN,ERROR),并且它还可以管理所有的附加组件(例如,appenders),
# 例如文件、控制台等。
#
#log4j.rootLogger=DEBUG,A1 这条指令设定了 Log4j 的根记录器的日志级别为 DEBUG,并将所有日志发送到名为 A1 的 appender。
#
#在 Log4j 的配置文件中,你可以为每个 logger 设定独立的日志级别,但这些日志级别会受到根记录器的日志级别的影响。
# 如果一个 logger 的日志级别低于根记录器的日志级别,那么这个 logger 就不会记录那些低于根记录器级别的日志消息。
#
#总的来说,根记录器是 Log4j 日志系统的起点和终点,它管理和控制所有其他 logger 的行为。
其日志级别被设置为DEBUG,
# 这意味着所有级别为DEBUG及以上的日志都将被记录。同时,所有的日志都将被发送到名为A1的appender。
#Log4j的日志级别分为8个等级,分别是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL,
#它们的优先级顺序为:OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL。
#
#这些级别从高到低分别表示:
#
#OFF:关闭所有日志记录。
#FATAL:指出每个严重的错误事件将会导致应用程序的退出。
#ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行。
#WARN:表明会出现潜在错误的情形。
#INFO:消息在粗粒度级别上突出强调应用程序的运行过程。
#DEBUG:指出细粒度信息事件对调试应用程序是非常有帮助的。
#TRACE:跟踪日志,日志消息的粒度太细,不常使用。
#ALL:最低等级的,用于打开所有日志记录。
#通过在这里定义的级别,可以控制到应用程序中相应级别的日志信息的开关。例如,如果设置优先级为INFO,
#那么DEBUG级别的日志信息将不会被打印出来,而优先级更高的WARN、ERROR、FATAL级别的日志信息则会被打印出来。
#
#log4j.appender.A1=org.apache.log4j.ConsoleAppender: 这条指令定义了一个名为"A1"的appender,
# 它是一个控制台appender。这意味着所有发送到这个appender的日志都将被打印到控制台。
#
#log4j.appender.A1.layout=org.apache.log4j.PatternLayout: 这条指令为"A1" appender设置了一个布局。
# PatternLayout允许我们定义日志消息的格式。
#
#log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n:
# 这是PatternLayout的转换模式,它定义了日志消息的格式。具体来说:
#
#%-d{yyyy-MM-dd HH:mm:ss,SSS}:这将输出日期和时间。
#[%t]:这将输出产生日志的线程名。
#[%c]:这将输出日志事件的类别名。
#[%p]:这将输出日志事件的优先级,即DEBUG,INFO等。
#%m:这将输出应用提供的消息。
#%n:这将输出平台特定的行分隔符。
#综上,这些配置会设置Log4j的记录器、appender以及日志消息的格式,以便在控制台打印出格式化的日志信息。
log4j.rootLogger=DEBUG,A1
#把cn.lala包下的文件的日志级别设置为DEBUG
log4j.logger.cn.lala = 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

编写最简单的爬虫,抓取汽车之家车辆评测数据

package cn.lala.crawler.httpclient.test;


import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

@SuppressWarnings("all")
public class AutohomeCrawlerTest {
    public static void main(String[] args) throws IOException {
        //1,创建HttpClient对象,这个对象是用来发起请求的,相当于浏览器
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //2,声明HttpGet请求对象,相当于输入请求地址
        HttpGet httpGet = new HttpGet("https://www.autohome.com.cn/bestauto/");

        //3,使用HttpClient发起HttpGet请求,获取response,相当于按回车
        CloseableHttpResponse response = httpClient.execute(httpGet);

        //4,判断响应状态码时候是200,如果是,则获取响应数据
        if(response.getStatusLine().getStatusCode()==200){

            String html = EntityUtils.toString(response.getEntity(), "UTF-8");
            System.out.println(html);
        }
    }
}

你可能感兴趣的:(java,爬虫,开发语言)