利用Java抓取网页上的所有图片:

用两个正则表达式:
1、匹配html中img标签的正则:<img.*src=(.*?)[^>]*?>
2、匹配img标签中得src中http路径的正则:http:\"?(.*?)(\"|>|\\s+)
实现:
package org.swinglife.main;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
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;
/***
* java抓取网络图片
* @author swinglife
*
*/
public class CatchImage {
// 地址
private static final String URL = "http://www.csdn.net";
// 编码
private static final String ECODING = "UTF-8";
// 获取img标签正则
private static final String IMGURL_REG = "<img.*src=(.*?)[^>]*?>";
// 获取src路径的正则
private static final String IMGSRC_REG = "http:\"?(.*?)(\"|>|\\s+)";
public static void main(String[] args) throws Exception {
CatchImage cm = new CatchImage();
//获得html文本内容
String HTML = cm.getHTML(URL);
//获取图片标签
List<String> imgUrl = cm.getImageUrl(HTML);
//获取图片src地址
List<String> imgSrc = cm.getImageSrc(imgUrl);
//下载图片
cm.Download(imgSrc);
}
/***
* 获取HTML内容
*
* @param url
* @return
* @throws Exception
*/
private String getHTML(String url) throws Exception {
URL uri = new URL(url);
URLConnection connection = uri.openConnection();
InputStream in = connection.getInputStream();
byte[] buf = new byte[1024];
int length = 0;
StringBuffer sb = new StringBuffer();
while ((length = in.read(buf, 0, buf.length)) > 0) {
sb.append(new String(buf, ECODING));
}
in.close();
return sb.toString();
}
/***
* 获取ImageUrl地址
*
* @param HTML
* @return
*/
private List<String> getImageUrl(String HTML) {
Matcher matcher = Pattern.compile(IMGURL_REG).matcher(HTML);
List<String> listImgUrl = new ArrayList<String>();
while (matcher.find()) {
listImgUrl.add(matcher.group());
}
return listImgUrl;
}
/***
* 获取ImageSrc地址
*
* @param listImageUrl
* @return
*/
private List<String> getImageSrc(List<String> listImageUrl) {
List<String> listImgSrc = new ArrayList<String>();
for (String image : listImageUrl) {
Matcher matcher = Pattern.compile(IMGSRC_REG).matcher(image);
while (matcher.find()) {
listImgSrc.add(matcher.group().substring(0, matcher.group().length() - 1));
}
}
return listImgSrc;
}
/***
* 下载图片
*
* @param listImgSrc
*/
private void Download(List<String> listImgSrc) {
try {
for (String url : listImgSrc) {
String imageName = url.substring(url.lastIndexOf("/") + 1, url.length());
URL uri = new URL(url);
InputStream in = uri.openStream();
FileOutputStream fo = new FileOutputStream(new File(imageName));
byte[] buf = new byte[1024];
int length = 0;
System.out.println("开始下载:" + url);
while ((length = in.read(buf, 0, buf.length)) != -1) {
fo.write(buf, 0, length);
}
in.close();
fo.close();
System.out.println(imageName + "下载完成");
}
} catch (Exception e) {
System.out.println("下载失败");
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java抓取网页图片
# JAVA正则抓取图片
# java
# 抓取图片
# JavaWeb项目打开网页出现Session Error的异常解决方案
# java通过Jsoup爬取网页过程详解
# 详解java实现简单扫码登录功能(模仿微信网页版扫码)
# java调用微信接口实现网页分享小功能
# Java实现微信网页授权的示例代码
# Java实现的简单网页截屏功能示例
# java利用url实现网页内容的抓取
# Java导出网页表格Excel过程详解
# 下载图片
# 大家多多
# 中得
# 下载完成
# 正则表达式
# regex
# List
# Matcher
# ArrayList
# Pattern
# InputStream
# URL
# net
# URLConnection
# FileOutputStream
# util
# www
# String
# final
# UTF
相关文章:
建站主机选购指南:核心配置与性价比推荐解析
如何通过虚拟主机快速完成网站搭建?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
如何在IIS管理器中快速创建并配置网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Swift开发中switch语句值绑定模式
微信小程序 五星评分(包括半颗星评分)实例代码
建站10G流量真的够用吗?如何应对访问高峰?
PHP 500报错的快速解决方法
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
建站之星下载版如何获取与安装?
如何通过VPS搭建网站快速盈利?
如何在阿里云香港服务器快速搭建网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
,南京靠谱的征婚网站?
,制作一个手机app网站要多少钱?
如何在西部数码注册域名并快速搭建网站?
网站制作报价单模板图片,小松挖机官方网站报价?
公司网站制作价格怎么算,公司办个官网需要多少钱?
香港服务器如何优化才能显著提升网站加载速度?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何快速搭建高效可靠的建站解决方案?
开源网站制作软件,开源网站什么意思?
创业网站制作流程,创业网站可靠吗?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
定制建站流程步骤详解:一站式方案设计与开发指南
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何快速搭建响应式可视化网站?
建站168自助建站系统:快速模板定制与SEO优化指南
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
MySQL查询结果复制到新表的方法(更新、插入)
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
高端建站如何打造兼具美学与转化的品牌官网?
香港服务器WordPress建站指南:SEO优化与高效部署策略
模具网站制作流程,如何找模具客户?
如何获取PHP WAP自助建站系统源码?
宿州网站制作公司兴策,安徽省低保查询网站?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
红河网站制作公司,红河事业单位身份证如何上传?
建站主机类型有哪些?如何正确选型
建站之星如何快速解决建站难题?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
*请认真填写需求信息,我们会在24小时内与您取得联系。