小组分享内容

2024-04-01 23:04
文章标签 内容 分享 小组

本文主要是介绍小组分享内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.网络爬虫的作用(人话):

2.使用的工具

3.不使用程序进行网页信息的获取的操作步骤

4.如何使用程序来进行上述操作

        1.打开浏览器

        2.输入网址

       3.发送请求

        4.获取响应        

        5.判断响应是否成功

        6.获取响应里需要的内容

        7.记得最后关闭浏览器和response 

        8.完整的简单示例

5.带参数的get请求

        1.如何使用发送带参数的get请求

        2.如何创建这个URI呢

                1.首先创建一个URIBulider对象,构造方法形参就是个URL

                2.创建好URIBulider对象之后需要给这个URI设置参数

                3.仅仅设置参数还不够,还需要创建出来URI对象呢

                4.后续操作就和之前的一样了 


1.网络爬虫的作用(人话):

        使用程序获取网络资源

2.使用的工具

        1.maven来管理依赖

                需要引入进来httpclient5依赖,否则没有需要的类

                需要引入slf4j-log4j12来进行日志的处理

                        引入进来日志之后还需要进行修改,否则会报错,不引入这个玩意来搞日志也会报错,需要在resouces中新建一个名为log4j.properties的文件,并且复制进去下方的配置信息

log4j.rootLogger = DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n

        2.使用java的HttpClient来进行网页数据的抓取

        3.使用jsoup来分析抓取到的网络数据

3.不使用程序进行网页信息的获取的操作步骤

        3.1:打开浏览器

        3.2:输入网址

        3.3:按下回车(发出请求)

        3.4:获取响应

        3.5:解析响应成为人可以看懂的东西

4.如何使用程序来进行上述操作

        1.打开浏览器

        使用CloseableHttpClient来表示一个可以关闭的浏览器,所以首先创建一个浏览器对象

CloseableHttpClient closeableHttpClient = HttpClients.createDefault();

        2.输入网址

        使用HttpGet来向浏览器发送一个请求,请求的时候需要在创建对象的时候给这个对象一个形参,意思是要访问形参里的地址,在这里我选择了使用学校的雪梨官网,我怕别的网址违法

HttpGet url = new HttpGet("https://www.iqiyi.com/?vfm=f_809_lxm&fv=94f9f9e5a81b83a5");

       3.发送请求

        使用CloseableHttpClient对象的excute(网址)方法来模拟人按下回车的行为,这个方法会返回一个服务器方对我们的一个响应

closeableHttpClient.execute(url);

        4.获取响应        

        通过CloseableRespnose来接受服务器返回的响应

CloseableHttpResponse response = closeableHttpClient.execute(url);

        5.判断响应是否成功

        为了成功获得响应不获取乱七八糟的东西就要想办法判断一下是否是正确的反馈,所以使用CloseableClient对象的getCode方法来获取服务器提供的状态码(正常获取到信息时的状态码是200),只有当我获取到了正确的状态码我才进行下一步的处理

if(response.getCode()==200)

        6.获取响应里需要的内容

        获取到了响应还不够,咱需要获取到响应里的信息,可以通过CloseableResponse对象getEntity方法获取到响应体(响应头响应体响应行这些知识点可以参考下面这个帖子,我觉得这个解释的挺好理解的:HTTP响应是什么?_3、http响应的内容是什么-CSDN博客)可以通过EntityUtils类的静态方法toString来把响应体按照所需要的编码格式转化成字符串,访问雪梨获取到的就是他的html代码

if(response.getCode()==200)EntityUtils.toString(response.getEntity(),"utf8");

        7.记得最后关闭浏览器和response 

        8.完整的简单示例

package org.example;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import java.io.IOException;
public class CanNumGet {public static void main(String[] args) {//人工获取页面信息操作流程://打开浏览器CloseableHttpClient closeableHttpClient = HttpClients.createDefault();//输入网址HttpGet url = new HttpGet("http://www.edu2act.cn/votes/");CloseableHttpResponse response =null;//回车打开网址并且获取响应try {response= closeableHttpClient.execute(url);if(response.getCode()==200)System.out.println(EntityUtils.toString(response.getEntity(),"utf8"));} catch (IOException e) {e.printStackTrace();} catch (ParseException e) {throw new RuntimeException(e);} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}try {closeableHttpClient.close();} catch (IOException e) {e.printStackTrace();}}}
}

5.带参数的get请求

        之前的内容都是最基础的get请求,现在开始带参数的请求,在servlet的那节课的时候曾经提到过get请求可以有参数

        例如在进行搜索的时候会进行一个参数的传递,传递给后台

        1.如何使用发送带参数的get请求

                在之前的内容中只提到了如何发送get请求,当时使用的是new一个HttpGet请求,参数是个String类型的网址,其实他的构造方法还可以不传递网址,而是传递一个URI,这个URI对我来讲可以简单理解为一个URL带参数的查询方式,但这只是一种记忆方式,建议按照正规方式慢慢理解,可以参考下面两篇帖子

今天,彻底弄懂什么是URI-CSDN博客

URI是什么?-CSDN博客

第二篇建议从第三部分开始看,算是入正题了

        2.如何创建这个URI呢

                需要使用URIBulider类来创建,你可以把这玩意当作一个构造URI的构造器

                1.首先创建一个URIBulider对象,构造方法形参就是个URL

URIBuilder uriBuilder = new URIBuilder("http://www.edu2act.cn/votes/");

                2.创建好URIBulider对象之后需要给这个URI设置参数

                   使用URIBulider对象的addparametter("参数名(key)","参数值(value)"),这个方法的返回值就是调用该方法的对象,所以可以反复调用这个方法从而设置更多参数

 eg:uriBuilder.addParameter("key1","a").addParameter("key2","2").addParameter("key3","3");

这样子就相当于设置了三组参数

uriBuilder.addParameter("q","操作系统");

                3.仅仅设置参数还不够,还需要创建出来URI对象呢

HttpGet url = new HttpGet(uriBuilder.build());

                4.后续操作就和之前的一样了 

package org.example;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.net.URIBuilder;
import java.io.IOException;
import java.net.URISyntaxException;public class CanNumGet {public static void main(String[] args) {//人工获取页面信息操作流程://打开浏览器CloseableHttpClient closeableHttpClient = HttpClients.createDefault();URIBuilder uriBuilder = null;try {uriBuilder = new URIBuilder("http://www.edu2act.cn/votes/");uriBuilder.addParameter("q","操作系统");} catch (URISyntaxException e) {e.printStackTrace();}//输入网址HttpGet url = null;try {url = new HttpGet(uriBuilder.build());} catch (URISyntaxException e) {e.printStackTrace();}CloseableHttpResponse response =null;//回车打开网址并且获取响应try {response= closeableHttpClient.execute(url);if(response.getCode()==200)System.out.println(EntityUtils.toString(response.getEntity(),"utf8"));} catch (IOException e) {e.printStackTrace();} catch (ParseException e) {throw new RuntimeException(e);} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}try {closeableHttpClient.close();} catch (IOException e) {e.printStackTrace();}}}
}

这篇关于小组分享内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868362

相关文章

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

全解析CSS Grid 的 auto-fill 和 auto-fit 内容自适应

《全解析CSSGrid的auto-fill和auto-fit内容自适应》:本文主要介绍了全解析CSSGrid的auto-fill和auto-fit内容自适应的相关资料,详细内容请阅读本文,希望能对你有所帮助... css  Grid 的 auto-fill 和 auto-fit/* 父元素 */.gri

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调