java爬虫入门程序

<!--爬虫仅支持1.8版本的jdk-->
<!-- 爬虫需要的依赖-->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>

<!-- 爬虫需要的日志依赖-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
</dependency>

爬虫配置文件位置及存放位置

#爬虫日志配置文件 不写就报错
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

实例代码

package day02;
import org.apache.http.HttpEntity;
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;

public class pacohngde {
    public static void main(String[] args) throws IOException {
        //注意这个方法是爬取网址所有位置

        //1.打开浏览器,创建Httpclient对象
       //        CloseableHttpclient httpclient = Httpclients.createDefault();
        CloseableHttpClient aDefault = HttpClients.createDefault();

     //2.输入网址,发起get请求创建HttpGet对象 输入你需要爬取的网址
     HttpGet httpGet = new HttpGet("https://zhuanlan.zhihu.com/p/98346518");

        //3.按回车,发起请求,返回响应,使用httpclient对象发起请求
        CloseableHttpResponse response = aDefault.execute(httpGet);

        //4.解析响应,获取数据//判断状态码是否是200     200为正常型号  其他为异常
        if(response.getStatusLine().getStatusCode()== 200){
            //获取爬取数据
            HttpEntity httpEntity =response.getEntity();
            //将爬取数据解析为utf-8格式
          String content = EntityUtils.toString(httpEntity,"utf-8");
          //打印
                System.out.println(content);
}
//释放资源
response.close();
//关闭网页
aDefault.close();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518597.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

github生成新的SSH密钥

首先是参考官方文档 生成新的 SSH 密钥并将其添加到 ssh-agent述 当你在创建SSH密钥时遇到提示&#xff1a; Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):这一步是让你选择保存生成的SSH密钥对的文件名和位置。如果你直接按回车键&#xff08;[Pr…

Java项目:基于Springboot+vue实现的医院住院管理系统设计与实现(源码+数据库+开题报告+任务书+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的医院住院管理系统设 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

Activity入门2——生命周期与任务栈

OnCreate与OnDestroy OnCreate&#xff1a;创建一个活动。 OnDestroy&#xff1a;销毁一个活动。 假设某个用户在一个活动里输入了一些信息&#xff0c;用户由于某些原因退出了该活动&#xff0c;返回时希望能够还原之前输入的信息&#xff0c;不然重新输入就太麻烦了。 pub…

软考高级架构师:嵌入式软件开发概念和例题

一、AI 讲解 嵌入式软件开发和传统软件开发的差异 嵌入式软件开发与传统软件开发在目标、环境和开发过程等方面有显著的差异。下面通过对比的方式&#xff0c;简要阐述这些差异所在&#xff1a; 特性嵌入式软件开发传统软件开发开发目标针对特定硬件系统&#xff0c;强调软硬…

【Fn+windows键】‘Windows键+L’不能锁屏的问题

winL锁屏 3个键盘灯1.NumLock指示灯2.CapsLock指示灯3.ScrollLock指示灯 2.电脑锁屏问题 突然发现winL不能锁屏&#xff0c;反而是在自己打开的软件界面内编辑 各种操作之下&#xff0c;发现键盘上最不常用的灯亮了 所以了解了一番键盘灯的功能 3个键盘灯 1.NumLock指示灯 N…

快递费用一目了然:taobao.item_fee API在电商中的应用

taobao.item_fee API在电商中的应用主要体现在精准计算快递费用&#xff0c;从而为用户提供一个更加透明和便捷的购物体验。这一接口允许淘宝或天猫的开发者根据商品ID、收货地址等信息&#xff0c;精确计算商品的快递费用。对于用户而言&#xff0c;这意味着在购物过程中能够实…

工厂模式图

工厂模式 介绍一下简单工厂模式与工厂方法模式 结构图 简单工厂模式 工厂方法模式

【剑指offr--C/C++】JZ7 重建二叉树

一、题目 二、思路及代码 前序遍历&#xff1a;中、左、右。所以前序遍历的第一个节点是树的根节点&#xff0c;第二个节点是左子树的根节点。。。。 中序遍历&#xff1a;左、中、右。树的根节点在中间某处 我们可以根据二者的特点结合一下&#xff1a;对于前序遍历序列{1,2,4…

ubuntu安装sublime3并设置中文

安装Sublime Text 3 在Ubuntu上安装Sublime Text 3可以通过以下步骤进行&#xff1a; 打开终端。 导入Sublime Text 3的GPG密钥&#xff1a; wget -qO- https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - 添加Sublime Text 3的存储库&#xff1a; …

纯C代码模板

一、快排 void QuickSort(int *a,int left,int right){if(left>right) return;else{int low left,high right;int pivot a[low];while(low<high){while(a[high] > pivot && low < high){high--;}a[low] a[high]; //必须先动a[low]while(a[low] < …

TR3 - Transformer算法详解

目录 文本输入处理词向量位置向量 编码器 EncoderSelf-Attention多头注意力机制残差连接 解码器 Decoder线性层与Softmax损失函数总结与心得体会 这周来看一下Transformer是怎么将文本转换成向量&#xff0c;然后又输入到模型处理并得到最终的输出的。 文本输入处理 词向量 …

计算机内存是如何管理的

计算内存的那些事儿——内存管理 大家回忆一下&#xff0c;计算机结构&#xff0c;或者说一个SoC&#xff08;system-on-chip&#xff09;芯片的结构。 cpu、memory、peripherals&#xff0c;这是计算机的主要部件&#xff0c;三者之间通过system bus勾搭在一起。 The main co…

易支付和独角数卡对接TokenPay开通USDT收款教程

TRX、USDT-TRC20、ETH系列区块链代币的支付通道是很多发卡和电商平台需要的&#xff0c;因为传统的微信、支付宝、PayPal等支付接口审查严格、手续费高。自建的代币接口完成没有手续费&#xff0c;稳定可靠&#xff0c;也没有审查要求。 易支付在行业普及广泛&#xff0c;大部…

JVM(Java虚拟机)

文章目录 一、JVM简介1.1 JVM概念1.2 什么是Java虚拟机呢&#xff1f;Java虚拟机的好处是什么呢&#xff1f; 二、JVM整体组成部分三、类加载器3.1 类加载子系统3.2 类加载过程3.2.1 装载(Load)3.2.2 链接(Link)3.2.3 初始化(Initialize) 四、运行时数据区4.1 方法区&#xff0…

stack 与 queue 与 priority_queue 与 仿函数 与 模板进阶

目录 stack queue deque priority_queue 使用 模拟实现 仿函数 仿函数的用法 仿函数的意义 模板进阶 非类型模板参数 模板特化 类模板特化的用法 类模板特化的意义 函数模板特化的用法 模板的分离编译 模板分离编译报错的原因 ​解决方法 模板总结 栈、队列…

Git安装教程(图文安装)

Git Bash是git(版本管理器)中提供的一个命令行工具&#xff0c;外观类似于Windows系统内置的cmd命令行工具。 可以将Git Bash看作是一个终端模拟器&#xff0c;它提供了类似于Linux和Unix系统下Bash Shell环境的功能。通过Git Bash&#xff0c;用户可以在Windows系统中运行基于…

【数据处理包Pandas】DataFrame对象的合并

目录 前言一、回顾Numpy数组的合并二、concat方法合并DataFrame对象三、append方法的使用四、merge方法合并DataFrame对象&#xff08;一&#xff09;比较merge与concat&#xff08;二&#xff09;参数on、left_on和right_on的用法&#xff08;三&#xff09;合并时四种不同的连…

c# wpf template ItemsPanel 简单试验

1.概要 2.代码 <Window x:Class"WpfApp2.Window9"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

软件测试(Junit5 单元测试框架)(五)

1. Junit单元测试框架 Junit 是 Java 的一个单元测试框架, 使用Selenium写自动化测试用例, 使用Junit 管理写好的测试用例. 2. 注解&#xff1a; Test 表示当前的这个方法是一个测试用例. 示例: 添加依赖 <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-…

[译] 教你如何用 Flutter 的 GestureDetector 构建自定义滑块

这个控件非常简单&#xff0c;我们接收完成的百分比值&#xff0c;以及正面和背面部分的颜色。主 Container 将背面颜色作为背景&#xff0c;我们将绘制正面部分去覆盖它。它的子节点是 Row&#xff0c;虽然它只包含一个子节点&#xff0c;但我保留了它&#xff0c;方便你添加另…