c httpclient抓取网页(分为GET请求、有参请求相同有参数的连接)

优采云 发布时间: 2022-02-13 15:13

  c httpclient抓取网页(分为GET请求、有参请求相同有参数的连接)

  HttpClient是Apache Jakarta Common下的一个子项目,可用于提供高效、最新、功能丰富的支持HTTP协议的客户端编程工具包,支持最新版本和推荐HTTP 协议。因此,为了爬取网络资源,需要使用Http协议来访问网页。

  HttpClient分为不带参数的GET请求、带参数的GET请求、不带参数的POST请求、带参数的POST请求。

  无参数GET请求:类似于普通的主页连接,没有任何参数的网页

  HttpGet httpGet = new HttpGet("https://www.baidu.com/");

  带参数的GET请求:带参数的连接,例如带有搜索和分类功能的网页

  HttpGet httpGet = new HttpGet("https://search.jd.com/Search?keyword=Java");

  不带参数的POST请求:与带参数的GET请求相同

  HttpPost httpPost = new HttpPost("https://www.baidu.com/");

  带参数的POST请求:url地址无参数,将参数keys=java放在表单中提交

  // 创建HttpGet请求

HttpPost httpPost = new HttpPost("https://search.jd.com/");

// 声明存放参数的List集合

List params = new ArrayList();

params.add(new BasicNameValuePair("keys", "java"));

// 创建表单数据Entity

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");

// 设置表单Entity到httpPost请求对象中

httpPost.setEntity(formEntity);

  开始

  IDEA环境配置

  

org.apache.httpcomponents

httpclient

4.5.3

org.slf4j

slf4j-log4j12

1.7.25

  添加 log4j.properties 资源文件

  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

  编写代码

  public static void main(String[] args) throws Exception {

// 创建 HttpClient 对象

CloseableHttpClient httpClient = HttpClients.createDefault();

// 创建 HTTPGET 请求

HttpGet httpGet = new HttpGet("https://www.baidu.com/");

// 使用 HttpClient 发起请求

CloseableHttpResponse response = httpClient.execute(httpGet);

// 判断响应状态码是否为200(200指OK,,网页请求成功)

if (response.getStatusLine().getStatusCode() == 200) {

// 先把网页保存成String,解析获取字符集,将网页中文内容转换成对应字符集,再转换成统一的字符集utf-8

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

System.out.println(content);

}

}

  输出结果为网页源代码,可自行演示

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线