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);
        }
    }
}
相关推荐
一丝晨光1 分钟前
逻辑运算符
java·c++·python·kotlin·c#·c·逻辑运算符
元气代码鼠2 分钟前
C语言程序设计(进阶)
c语言·开发语言·算法
霍霍哈嗨15 分钟前
【QT基础】创建项目&项目代码解释
开发语言·qt
friklogff15 分钟前
【C#生态园】从图像到视觉:Emgu.CV、AForge.NET、OpenCvSharp 全面解析
开发语言·c#·.net
无名指的等待71225 分钟前
SpringBoot中使用ElasticSearch
java·spring boot·后端
Tatakai251 小时前
Mybatis Plus分页查询返回total为0问题
java·spring·bug·mybatis
武子康1 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark
.生产的驴1 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
躺平的花卷1 小时前
Python爬虫案例六:抓取某个地区某月份天气数据并保存到mysql数据库中
数据库·爬虫·python·mysql
虚拟搬运工1 小时前
Python类及元类的创建流程
开发语言·chrome·python