c httpclient抓取网页(博客系列Java爬虫入门简介(二)——HttpClient请求)
优采云 发布时间: 2022-02-09 16:06c httpclient抓取网页(博客系列Java爬虫入门简介(二)——HttpClient请求)
数据是科学研究活动的重要依据。本系列博客将介绍如何使用 Java 工具获取网络数据。
博客系列
Java爬虫简介(一)——HttpClient请求(本文)
Java爬虫介绍(二) - Jsoup解析HTML页面
首先说一下爬虫的基本原理。爬虫的基本原理很简单,就是利用程序上网,然后将数据保存在本地。我们都知道,互联网提供的大部分服务都是以网站的形式提供的。我们需要的数据一般是从网站获取的,比如电商网站商品信息、商品评论、微博信息等。爬虫类似于手动复制粘贴我们看到的数据,但是手动获取大量数据显然是不可能的。因此,我们需要工具来帮助获取知识。用程序写爬虫就是用程序写一些网络访问规则,保存我们的目标数据。接下来,让我们从头开始构建一个爬虫示例。
一、环境准备
这里的环境是指开发环境。本篇博客将使用Java编写爬虫程序。因此,有必要构建一个Java编程环境。需要安装的软件包括(注意我的电脑使用的是windows X64程序,请选择对应的JDK版本,使用8.0及以上):
1、JDK 8.0:
2、IntelliJ 想法:
网上有很多JDK的安装和环境变量的配置,就不多说了。IntelliJ IDEA是傻瓜式安装的,基本没有问题。也别说。
二、创建项目
安装好环境后,我们打开 IntelliJ IDEA,然后创建一个 Maven 项目。Group Id 和 Artifact Id 是不是自己写的也没关系。创建后,我们的目录将如下图所示。
好吧,让我们开始编写爬虫。
三、第一个例子
首先假设我们需要爬取数据学习首页网站的博客( )。首先,我们需要使用maven导入HttpClient4.5.3包(这是最新的包,你可以根据需要使用其他版本)。然后,我们在 pom.xml 中添加以下语句:
org.apache.httpcomponents
httpclient
4.5.3
Java 本身提供了关于网络访问的包,在,然后它还不够强大。于是Apache基金会发布了一个开源的http请求包,即HttpClient,它提供了很多网络访问功能。在这里,我们也使用这个包来编写爬虫。好吧,在使用 pom.xml 下载这个包之后,我们可以开始编写我们的第一个爬虫示例。代码如下(注意我们的程序是在test包下构建的,所以需要在这个包下运行):
package test;
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;
/**
* 第一个爬虫测试
* Created by DuFei on 2017/7/27.
*/
public class FirstTest {
public static void main(String[] args) {
//建立一个新的请求客户端
CloseableHttpClient httpClient = HttpClients.createDefault();
//使用HttpGet方式请求网址
HttpGet httpGet = new HttpGet("http://www.datalearner.com/blog");
//获取网址的返回结果
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet);
} catch (IOException e) {
e.printStackTrace();
}
//获取返回结果中的实体
HttpEntity entity = response.getEntity();
//将返回的实体输出
try {
System.out.println(EntityUtils.toString(entity));
EntityUtils.consume(entity);
} catch (IOException e) {
e.printStackTrace();
}
}
}
如上代码所示,爬虫的第一步需要构建一个客户端,即请求者。我们这里使用CloseableHttpClient作为我们的请求者,然后确定以哪种方式请求什么URL,然后使用HttpResponse获取请求的地址。相应的结果。最后,取出HttpEntity并进行转换,得到我们请求的URL对应的内容。上述程序对应的输出如下图所示:
很明显,这就是我们需要的URL对应的页面的源码。所以我们的第一个爬虫成功下载了门户网站需要的页面内容。