java小工具:通过URL连接爬取资源(图片)
java语言编写一个简单爬取网站图片工具,实现简单:
- 通过 java.net.HttpURLConnection 获取一个URL连接
- HttpURLConnection 连接成功返回一个java.io.InputStream,通过InputStream读取图片放入到字节数组buff
- 通过BufferedOutputStream(new FileOutputStream(new File("TEST.jpg"))) 形式 将内存buff里的图片数据写入到test.jpg文件中
给出工具类的CatchIMG.java代码如下:
/**
* @Title: CatchIMG.java
* @Package web1203.tools
* @Description: TODO(用一句话描述该文件做什么)
* @author penny
* @date 2017年12月3日 下午9:00:05
* @version V1.0
*/
package web1203.tools;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
 * @ClassName: CatchIMG
 * @Description: 爬取一个指定地址的网络图片
 * @author penny
 * @date 2017年12月3日 下午9:00:05
 *
 */
public class CatchIMG {
	/**
	 *
	 * @Title: getImg
	 * @Description: 通过一个url 去获取图片
	 * @param @param url 图片的连接地址
	 * @param @throws IOException
	 * @throws
	 */
	public static void getImg(String url) throws IOException{
		long startTime = System.currentTimeMillis();
		URL imgURL = new URL(url.trim());//转换URL
		HttpURLConnection urlConn = (HttpURLConnection) imgURL.openConnection();//构造连接
		urlConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36");
		urlConn.connect();
		System.out.println(CatchIMG.class.toString()+":获取连接="+urlConn.getResponseMessage());
		if(urlConn.getResponseCode()==200){//返回的状态码是200 表示成功
			InputStream ins = urlConn.getInputStream(); //获取输入流,从网站读取数据到 内存中
			OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("TEST.jpg")));
			int len=0;
			byte[] buff = new byte[1024*10];//10k缓冲流 视你内存大小而定咯
			while(-1!=(len=(new BufferedInputStream(ins)).read(buff))){//长度保存到len,内容放入到 buff
				out.write(buff, 0, len);//将图片数组内容写入到图片文件
//				System.out.println(CatchIMG.class.toString()+":"+len+"byte已经写入到文件中,内容:  "+new String(buff));
			}
			urlConn.disconnect();
			ins.close();
			out.close();
			System.out.println(CatchIMG.class.toString()+":获取图片完成,耗时="+((System.currentTimeMillis()-startTime)/1000)+"s");
		}
	}
	/**
	 * @throws IOException
	 * @Title: main
	 * @Description: 测试方法
	 * @throws
	 */
	public static void main(String[] args) throws IOException {
		CatchIMG.getImg("https://files.cnblogs.com/files/humi/wc.bmp");//
	}
}
测试中要获取的图片是这个https://files.cnblogs.com/files/humi/wc.bmp
最终效果
imgraber
*** 一个自己写的java 爬虫基于jsoup和swing技术
- 可以爬取指定一个url网页里面所有图片
- 并生成 所有图片链接 url .txt
- 生成 img图片保存到 软件同目录img文件夹下
 链接http://www.cnblogs.com/humi/p/8555000.html
java小工具:通过URL连接爬取资源(图片)的更多相关文章
- (java)selenium webdriver爬虫学习--爬取阿里指数网站的每个分类的top50 相关数据;
		主题:java 爬虫--爬取'阿里指数'网站的每个分类的top50 相关数据: 网站网址为:http://index.1688.com/alizs/top.htm?curType=offer& ... 
- java爬虫-简单爬取网页图片
		刚刚接触到“爬虫”这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语言编程,这次我选择了 ... 
- python requests库爬取网页小实例:爬取网页图片
		爬取网页图片: #网络图片爬取 import requests import os root="C://Users//Lenovo//Desktop//" #以原文件名作为保存的文 ... 
- java爬虫爬取资源,小白必须会的入门代码块
		java作为目前最火的语言之一,他的实用性也在被无数的java语言爱好者逐渐的开发,目前比较流行的爬取资源,用java来做也更简单一些,下面是爬取网页上所有手机型号,参数等极为简便的数据 packag ... 
- 实用在线小工具 -- Google URL Shortener
		实用在线小工具 -- Google URL Shortener 当你想分享一些你觉得有趣的东西,但是那个链接太长,以至于贴上去一大片.比如在微博上分享一张图片,然后贴上去图片的链接,url ... 
- python3爬取1024图片
		这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ... 
- Python爬虫学习(6): 爬取MM图片
		为了有趣我们今天就主要去爬取以下MM的图片,并将其按名保存在本地.要爬取的网站为: 大秀台模特网 1. 分析网站 进入官网后我们发现有很多分类: 而我们要爬取的模特中的女模内容,点进入之后其网址为:h ... 
- python3爬取女神图片,破解盗链问题
		title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ... 
- Scrapy爬取美女图片续集 (原创)
		上一篇咱们讲解了Scrapy的工作机制和如何使用Scrapy爬取美女图片,而今天接着讲解Scrapy爬取美女图片,不过采取了不同的方式和代码实现,对Scrapy的功能进行更深入的运用.(我的新书< ... 
随机推荐
- OpenJudge数据结构与算法-计算点的距离并排序
			/*================================================================== 距离排序 总时间限制: 1000ms 内存限制: 65536k ... 
- keras输出预测值和真实值
			在使用keras搭建神经网络时,有时需要查看一下预测值和真是值的具体数值,然后可以进行一些其他的操作.这几天查阅了很多资料.好像没办法直接access到训练时的数据.所以我们可以通过回调函数,传入新的 ... 
- throws和throw的使用
			throws 用在方法定义上 后面跟一个或者多个异常名称 如果是多个异常名称,之间使用","隔开 , 表达的意思是给该方法添加一个或者多个异常声明; 告诉调用者该方法可能会出现问题 ... 
- java获取两个日期之间的所有日期
			java获取两个日期之间的所有日期 解决方法: 1.核心方法 private List<String> getBetweenDates(String start, String end ... 
- c语言面试宝典(经典,超详细)
			c语言面试宝典(经典,超详细) 2018年08月25日 09:32:19 chengxuyuan997 阅读数:7799 摘自:https://blog.csdn.net/chengxuyuan9 ... 
- json简单案例
			1.Group类 import java.util.ArrayList; import java.util.List; class Group{ private int id; private Str ... 
- 01.轮播图之二 :tableView 轮播
			在做这个tablevew轮播的时候,重要的就是修改frame 和view 的翻转了:::: 也是不难的,概要的设计和scroll 轮播是一致的: 首先是 .h 的文件 @interface Table ... 
- 【c# 学习笔记】子类的初始化顺序
			使用了继承之后,当我们初始化一个子类时,除了会调用子类的构造函数外,同时也会调用基类的构造函数.子类的初始化顺序如下: ① 初始化类的实例字段: ② 调用基类的构造函数,如果没有指明基类,则调用Sys ... 
- XenServer 根分区空间满的解决办法
			1.清除已经应用的旧补丁文件 删除 /var/patch/ 下的除 applied 之外的所有文件 2.清除旧版的Xen-Tools文件 删除 /opt/xensource/packages/iso/ ... 
- eclipse界面
			Eclipse工作空间的基本配置 A:行号的显示和隐藏 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可. 隐藏:把上面的动作再做一次. B:字体大小及颜色 a: ... 
 
			
		
