java_网路爬虫_0

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

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>crawler</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
<dependencies>
    <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>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.15.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.7</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.7</version>
    </dependency>
</dependencies>
</project>
复制代码
log4j.properites文件
java 复制代码
#这些是Log4j的配置指令,Log4j是一个用于Java项目的强大的日志记录库。让我们一步步来解析:
#
#log4j.rootLogger=DEBUG,A1: 这条指令设定了Log4j的根记录器,即默认记录器。其日志级别被设置为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

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

java 复制代码
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);
        }
    }
}
相关推荐
工业3D_大熊7 分钟前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
szc176711 分钟前
docker 相关命令
java·docker·jenkins
程序媛-徐师姐21 分钟前
Java 基于SpringBoot+vue框架的老年医疗保健网站
java·vue.js·spring boot·老年医疗保健·老年 医疗保健
yngsqq21 分钟前
c#使用高版本8.0步骤
java·前端·c#
流星白龙24 分钟前
【C++习题】10.反转字符串中的单词 lll
开发语言·c++
尘浮生31 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
MessiGo32 分钟前
Python 爬虫 (1)基础 | 基础操作
开发语言·python
小白不太白95035 分钟前
设计模式之 模板方法模式
java·设计模式·模板方法模式
Tech Synapse37 分钟前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端