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);
        }
    }
}
相关推荐
binishuaio4 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE6 分钟前
【Java SE】StringBuffer
java·开发语言
老友@6 分钟前
aspose如何获取PPT放映页“切换”的“持续时间”值
java·powerpoint·aspose
就是有点傻10 分钟前
WPF中的依赖属性
开发语言·wpf
洋24018 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙20 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点21 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
Upaaui24 分钟前
Aop+自定义注解实现数据字典映射
java
zzzgd81624 分钟前
easyexcel实现自定义的策略类, 最后追加错误提示列, 自适应列宽,自动合并重复单元格, 美化表头
java·excel·表格·easyexcel·导入导出
友善的鸡蛋25 分钟前
解决:使用EasyExcel导入Excel模板时出现数据导入不进去的问题
java·easyexcel·excel导入