当前位置: 首页 > news >正文

使用Apache HttpClient爬取网页内容的详细步骤解析与案例示例

Apache HttpClient是一个功能强大的开源HTTP客户端库,本文将详细介绍如何使用Apache HttpClient来爬取网页内容的步骤,并提供三个详细的案例示例,帮助读者更好地理解和应用。

一、导入Apache HttpClient库

在项目的pom.xml文件中添加依赖,将以下代码添加到pom.xml文件中:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version>
</dependency>

二、创建爬虫类和HttpClient对象

创建一个名为WebCrawler的Java类。

  • 使用HttpClients工具类的createDefault()方法创建一个默认的HttpClient对象,示例代码如下:
CloseableHttpClient httpClient = HttpClients.createDefault();

三、创建HttpGet请求对象

使用HttpGet的构造方法,传递网页URL作为参数来创建一个HttpGet请求对象,示例代码如下:

HttpGet httpGet = new HttpGet("http://www.example.com");

四、发送请求并获取响应

使用HttpClient的execute()方法发送请求并获取响应,该方法接收一个HttpGet对象作为参数,并返回一个CloseableHttpResponse对象,包含了服务器返回的响应信息,示例代码如下:

CloseableHttpResponse response = httpClient.execute(httpGet);

五、提取网页内容

使用EntityUtils工具类的toString()方法,将响应实体转换为字符串形式的网页内容,该方法接收一个HttpEntity对象作为参数,并返回一个字符串,示例代码如下:

String content = EntityUtils.toString(response.getEntity(), "UTF-8");

六、打印网页内容并关闭响应和HttpClient

使用System.out.println()方法打印出网页内容。

  • 调用response的close()方法关闭响应。
  • 调用httpClient的close()方法关闭HttpClient,示例代码如下:
System.out.println(content);
response.close();
httpClient.close();

七、案例示例

案例一:爬取某度首页内容

HttpGet httpGet = new HttpGet("https://www.xxxxx.com");
CloseableHttpResponse response = httpClient.execute(httpGet);
String content = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(content);
response.close();
httpClient.close();

案例二:爬取某乎热榜内容

HttpGet httpGet = new HttpGet("https://www.xxxxx.com/hot");
CloseableHttpResponse response = httpClient.execute(httpGet);
String content = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(content);
response.close();
httpClient.close();

案例三:爬取某瓣电影TOP250内容

HttpGet httpGet = new HttpGet("https://movie.xxxxxx.com/top250");
CloseableHttpResponse response = httpClient.execute(httpGet);
String content = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(content);
response.close();
httpClient.close();

注意事项:

  • 设置请求间隔时间,避免对服务器造成过大的负载。
  • 处理异常情况,如网络连接失败、网页不存在等,使用try-catch语句来处理这些异常情况,并采取相应的措施。

结语:

通过以上步骤和案例示例,我们可以使用Apache HttpClient来爬取网页内容。Apache HttpClient提供了丰富的功能和配置选项,您可以根据具体的需求和情况进行相应的调整和扩展。希望本文对您了解和使用Apache HttpClient有所帮助,欢迎您根据本文提供的示例代码进行实践和探索。

http://www.lryc.cn/news/180696.html

相关文章:

  • 传输层协议—UDP协议
  • 【改造中序遍历】 538. 把二叉搜索树转换为累加树
  • 2022年11月工作经历
  • 使用广播信道的数据链路层
  • 第3章-指标体系与数据可视化-3.1.2-Seaborn绘图库
  • excel中将一个sheet表根据条件分成多个sheet表
  • 案例突破——再探策略模式
  • uboot启动流程-涉及lowlevel_init汇编函数
  • 质数距离 - 如何在较合理的时间复杂度内求2e9范围内的质数
  • 八、3d场景的区域光墙
  • 深入探讨 Presto 中的缓存
  • 3.物联网射频识别,(高频)RFID应用ISO14443-2协议,(校园卡)Mifare S50卡
  • 【IDEA】IDEA 单行注释开头添加空格
  • 三等分功分器[波导]设计详细教程
  • Mysql分库分表
  • 【算法学习】-【双指针】-【复写零】
  • 【算法优选】双指针专题——叁
  • Java栈的压入、弹出序列(详解)
  • RabbitMQ学习笔记(消息发布确认,死信队列,集群,交换机,持久化,生产者、消费者)
  • PyTorch - 模型训练损失 (Loss) NaN 问题的解决方案
  • 8、Nacos服务注册服务端源码分析(七)
  • MySQL使用Xtrabackup在线做主从
  • scala基础入门
  • 【Java-LangChain:面向开发者的提示工程-5】推断
  • 【C++】手撕vector(vector的模拟实现)
  • 智能指针那些事
  • Fiddler抓取手机https包的步骤
  • idea没有maven工具栏解决方法
  • levelDB引擎
  • IM同步服务