c httpclient抓取网页(博客系列Java爬虫入门简介(二)——HttpClient请求)

优采云 发布时间: 2022-02-09 16:06

  c 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对应的页面的源码。所以我们的第一个爬虫成功下载了门户网站需要的页面内容。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线