HttpClient爬取网站及图片
来源:互联网 发布:芙丽芳丝洗面奶知乎 编辑:程序博客网 时间:2024/05/29 17:56
1、什么是HttpClient?
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
通过Java程序模拟浏览器访问网页,获取网页代码及图片的应用程序。
2、上代码:
在pom.xml中加入依赖关系:
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version></dependency>
项目代码:
public static void main(String[] args) throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建HttpClient实例HttpGet httpGet = new HttpGet("http://www.tuicool.com"); // 创建Httpget实例//设置Http报文头信息httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0");CloseableHttpResponse response = null;response = httpClient.execute(httpGet); // 执行http get请求HttpEntity httpEntity = response.getEntity(); // 获取返回实体String web = EntityUtils.toString(httpEntity, "utf-8"); // 解析实体System.out.println("网页内容是:");System.out.println(web);
//获取返回信息String ContentType = httpEntity.getContentType().getValue();System.out.println("Content-Type:"+ContentType);
System.out.println("Status:"+response.getStatusLine().getStatusCode());//获取返回码:200 404 500等response.close(); // 关闭responsehttpClient.close(); // 关闭HttpClient实体}
3、请求图片:
1)获取图片后,以InputStream的形式返回,可以通过new File 及 new OutputStream 的方法保存图片。
2)同时也可以通过Apache的工具包(本质上是封装第一种方法,底层实现原理相同)
需要在pom.xml中加入如下依赖关系:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version></dependency>
public static void main(String[] args) throws Exception {CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建HttpClient实例HttpGet httpGet = new HttpGet("http://www.java1234.com/uploads/allimg/170610/1-1F610195021142.jpg"); // 创建Httpget实例//设置Http报文头信息httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0");CloseableHttpResponse response = null;response = httpClient.execute(httpGet); // 执行http get请求HttpEntity entity = response.getEntity(); // 获取返回实体if(null != entity){System.out.println("ContentType:"+entity.getContentType().getValue());InputStream inputStream = entity.getContent();//返回一个输入流//输出图片FileUtils.copyInputStreamToFile(inputStream, new File("D://a.jpg"));//引用org.apache.commons.io.FileUtils}response.close(); // 关闭responsehttpClient.close(); // 关闭HttpClient实体}
阅读全文
0 0
- HttpClient爬取网站及图片
- httpclient/jsoup爬取图片
- 爬取网站图片
- python爬取网站图片
- Python爬取网站图片
- python3 爬取网站图片
- 利用jsoup和httpclient来进行网站的爬取
- 用WebCollector爬取网站的图片
- 如何从网站爬取图片?
- 使用jsoup爬取网站图片
- 爬虫-爬取网站上的图片
- python爬取5442网站图片
- Python3.6爬取网站图片
- Java爬虫爬取网站图片
- python爬虫爬取网站图片
- 爬取1024网站的图片
- httpclient爬取网页
- [python学习] 简单爬取图片网站图库中图片
- POJ 2796:Feel Good (单调栈)
- python 多进程实例 进程间的通信
- VS2015动态库编程之MFC扩展动态库(下)
- python18运维应用
- C#中Equal与==的使用原则
- HttpClient爬取网站及图片
- Python语言学习之一:环境搭建,执行方式及主模块和非主模块
- Tensorflow学习——ReLu
- Linux下线程
- Codeforces 670D2 Magic Powder-2
- log4j + slf4j的maven配置
- 如何通过SSH反向隧道,访问NAT后面的Linux服务器?----本人备注
- opencv3.2.0中approxPolyDP函数使用效果
- nfs: server 192.168.6.102 not responding, still trying 挂载问题