Java读取网页内容并下载图片的实例

发布时间 - 2026-01-11 03:24:35    点击率:

Java读取网页内容并下载图片的实例

     很多人在第一次了解数据采集的时候,可能无从下手,尤其是作为一个新手,更是感觉很是茫然,所以,在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正。写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长。  

示例代码:

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetContentPicture {
public void getHtmlPicture(String httpUrl) {
URL url;
BufferedInputStream in;
FileOutputStream file;
try {
  System.out.println("取网络图片");
  String fileName = httpUrl.substring(httpUrl.lastIndexOf("/"));
  String filePath = "./pic/";
  url = new URL(httpUrl);

  in = new BufferedInputStream(url.openStream());

  file = new FileOutputStream(new File(filePath+fileName));
  int t;
  while ((t = in.read()) != -1) {
  file.write(t);
  }
  file.close();
  in.close();
  System.out.println("图片获取成功");
} catch (MalformedURLException e) {
  e.printStackTrace();
} catch (FileNotFoundException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}
}

public String getHtmlCode(String httpUrl) throws IOException {
String content ="";
URL uu = new URL(httpUrl); // 创建URL类对象
BufferedReader ii = new BufferedReader(new InputStreamReader(uu
  .openStream())); // //使用openStream得到一输入流并由此构造一个BufferedReader对象
String input;
while ((input = ii.readLine()) != null) { // 建立读取循环,并判断是否有读取值
  content += input;
}
ii.close();
return content;
}

public void get(String url) throws IOException {

String searchImgReg = "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
String searchImgReg2 = "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([\\w-]+\\.)+[\\w-]+(:[0-9]+)*(/[\\w-]+)*(/[\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";

String content = this.getHtmlCode(url);
System.out.println(content);

Pattern pattern = Pattern.compile(searchImgReg);
Matcher matcher = pattern.matcher(content);
while (matcher.find()) {
  System.out.println(matcher.group(3));
  this.getHtmlPicture(url+matcher.group(3));

}

pattern = Pattern.compile(searchImgReg2);
matcher = pattern.matcher(content);
while (matcher.find()) {
  System.out.println(matcher.group(3));
  this.getHtmlPicture(matcher.group(3));

}
// searchImgReg =
// "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";
}
public static void main(String[] args) throws IOException {
String url = "http://www.baidu.com/";
GetContentPicture gcp = new GetContentPicture();
gcp.get(url);
}
}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java读取网页  # Java读取网页并下载图片  # Java从数据库中读取Blob对象图片并显示的方法  # Java实现图片上传到服务器并把上传的图片读取出来  # Java从网络读取图片并保存至本地实例  # Java读取图片EXIF信息的方法  # Java 读取PDF中的文本和图片的方法  # java IO流读取图片供前台显示代码分享  # java读取图片并转化为二进制字符串的实现方法  # 如何使用Java读取PPT文本和图片  # Java技巧:快速获取图片拍摄时间  # 自己的  # 有什么  # 我也  # 在这里  # 尤其是  # 如有  # 很多人  # 无从下手  # 希望能  # 希望大家  # 作为一个  # 这篇  # 能使  # 谢谢大家  # 还请  # 数据采集  # 下载图片  # 大家一起分享  # 判断是否  # 一起成长 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android自定义listview布局实现上拉加载下拉刷新功能  如何在万网ECS上快速搭建专属网站?  ,网页ppt怎么弄成自己的ppt?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  大同网页,大同瑞慈医院官网?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel怎么在Controller之外的地方验证数据  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何快速完成中国万网建站详细流程?  详解Android——蓝牙技术 带你实现终端间数据传输  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  EditPlus中的正则表达式 实战(2)  中山网站制作网页,中山新生登记系统登记流程?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Bootstrap整体框架之CSS12栅格系统  如何确保FTP站点访问权限与数据传输安全?  JS弹性运动实现方法分析  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  JS经典正则表达式笔试题汇总  公司门户网站制作流程,华为官网怎么做?  Laravel如何实现API版本控制_Laravel版本化API设计方案  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  如何做网站制作流程,*游戏网站怎么搭建?  详解jQuery停止动画——stop()方法的使用  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何快速搭建安全的FTP站点?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Android Socket接口实现即时通讯实例代码  iOS发送验证码倒计时应用  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Java类加载基本过程详细介绍  Laravel如何使用Eloquent进行子查询  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  香港服务器租用每月最低只需15元?  如何续费美橙建站之星域名及服务?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何快速搭建高效WAP手机网站吸引移动用户?  JavaScript如何实现继承_有哪些常用方法  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  iOS验证手机号的正则表达式  Laravel如何实现模型的全局作用域?(Global Scope示例)  javascript基本数据类型及类型检测常用方法小结  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  微信小程序 闭包写法详细介绍  简单实现Android验证码  EditPlus中的正则表达式 实战(1)  Laravel中的Facade(门面)到底是什么原理