Java实现的爬虫抓取图片并保存操作示例
2018-08-31 09:47
851 查看
本文实例讲述了Java实现的爬虫抓取图片并保存操作。分享给大家供大家参考,具体如下:
这是我参考了网上一些资料写的第一个java爬虫程序
本来是想获取煎蛋网无聊图的图片,但是网络返回码一直是503,所以换了网站
import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * 网络爬虫取数据 * * */ public class JianDan { public static String GetUrl(String inUrl){ StringBuilder sb = new StringBuilder(); try { URL url =new URL(inUrl); BufferedReader reader =new BufferedReader(new InputStreamReader(url.openStream())); String temp=""; while((temp=reader.readLine())!=null){ //System.out.println(temp); sb.append(temp); } } catch (MalformedURLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return sb.toString(); } public static List<String> GetMatcher(String str,String url){ List<String> result = new ArrayList<String>(); Pattern p =Pattern.compile(url);//获取网页地址 Matcher m =p.matcher(str); while(m.find()){ //System.out.println(m.group(1)); result.add(m.group(1)); } return result; } public static void main(String args[]){ String str=GetUrl("http://www.163.com"); List<String> ouput =GetMatcher(str,"src=\"([\\w\\s./:]+?)\""); for(String temp:ouput){ //System.out.println(ouput.get(0)); System.out.println(temp); } String aurl=ouput.get(0); // 构造URL URL url; try { url = new URL(aurl); // 打开URL连接 URLConnection con = (URLConnection)url.openConnection(); // 得到URL的输入流 InputStream input = con.getInputStream(); // 设置数据缓冲 byte[] bs = new byte[1024 * 2]; // 读取到的数据长度 int len; // 输出的文件流保存图片至本地 OutputStream os = new FileOutputStream("a.png"); while ((len = input.read(bs)) != -1) { os.write(bs, 0, len); } os.close(); input.close(); } catch (MalformedURLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
运行输出:
更多关于java相关内容感兴趣的读者可查看本站专题:《Java网络编程技巧总结》、《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Java简单实现爬虫技术,抓取整个整个网站所有链接+图片+文件(思路+代码)
- Python实现爬虫抓取与读写、追加到excel文件操作示例
- Python爬虫实现抓取京东店铺信息及下载图片功能示例
- java爬虫实战(1):抓取信息门户网站中的图片及其他文件并保存至本地
- [Java]中的HttpClient对象实现简单的爬虫,抓取妹子图片
- 【初学】java爬虫并抓取图片保存
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- mongodb基础系列——java操作mongodb实现图片文件功能
- Java爬虫,信息抓取的实现
- java实现图片旋转保存到数据库
- 使用js操作css实现js改变背景图片示例
- python抓取网页图片示例(python爬虫)
- mongodb基础系列——java操作mongodb实现图片文件功能
- Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存
- java实现网络爬虫--抓取网站数据
- Java爬虫,信息抓取的实现
- java裁剪图片并保存的示例分享
- Java实现MySQL图片存取操作
- java抓取12306信息实现火车余票查询示例