import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * * @author 方小洲 * * 2013-8-5 上午8:46:54 */ public class ImageParse { /** * 根据Url地址获取图片地址 * @param url * @return * @throws MalformedURLException */ public List<String> getImagesPath(String url) throws Exception { List<String> imagePaths = new ArrayList<String>(); String htmlCode = getHtmlCode(url); String imgRegs1 = "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")"; String imgRegs2 = "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([\\w-]+\\.)+[\\w-]+(:[0-9]+)*(/[\\w-]+)*(/[\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")"; //针对没有全路径的,不带url地址的 Pattern pattern = Pattern.compile(imgRegs1); Matcher matcher = pattern.matcher(htmlCode); while (matcher.find()) { imagePaths.add(url + "/" + matcher.group(3)); //System.out.println(url + "/" + matcher.group(3)); } //针对全路径的,不带url地址的 pattern = Pattern.compile(imgRegs2); matcher = pattern.matcher(htmlCode); while (matcher.find()) { imagePaths.add(matcher.group(3)); //System.out.println(matcher.group(3)); } return imagePaths ; } /** * 根据URL地址获取网页代码 * @param url * @throws Exception * @return */ public String getHtmlCode(String url) throws Exception { StringBuffer sbf = new StringBuffer(); URL httpUrl = new URL(url); BufferedReader reader = new BufferedReader(new InputStreamReader(httpUrl.openStream())); String line = "" ; while((line = reader.readLine()) != null){ //System.out.println(line); sbf.append(line); } return sbf.toString(); } /** * 根据URL地址下载图片 * @param targetUrl 目标网址 * @param outputPath 生成的文件目录 * @throws Exception */ public void downLoadImages(String targetUrl , String outputPath) throws Exception{ List<String> imagePaths = getImagesPath(targetUrl); for (String imagePath : imagePaths) { generatorImageBathByUrl(imagePath , outputPath); } } /** * 下载图片 * @param imagePath * @param outputPath * @throws Exception */ public void generatorImageBathByUrl(String imagePath , String outputPath) throws Exception{ //outputPath = outputPath + "/" + imagePath.substring(imagePath.lastIndexOf("/")); outputPath = outputPath + "/" + System.currentTimeMillis() + imagePath.substring(imagePath.lastIndexOf(".")); URL imageUrl = new URL(imagePath); BufferedInputStream bis = new BufferedInputStream(imageUrl.openStream()); FileOutputStream fos = new FileOutputStream(new File(outputPath)); int pos ; while((pos = bis.read()) != -1) { fos.write(pos); } fos.close(); bis.close(); } public static void main(String[] args) throws Exception { ImageParse parse = new ImageParse(); parse.downLoadImages("http://www.fjboda.cn","d:\\image"); } }
相关推荐
### Java抓取网页图片链接地址 #### 知识点概览 本文将详细介绍如何使用Java编程语言抓取网页上的图片链接。此技术广泛应用于网络爬虫、数据分析等领域,能够帮助开发者快速获取所需的图像资源。 #### 技术背景与...
通过发送HTTP请求到服务器,获取响应数据,从而获取网页内容。 2. **HTML解析**:抓取到的网页内容通常是HTML格式,因此需要解析HTML来提取图片信息。Java提供了多种库,如Jsoup,用于解析HTML文档,找出图片链接。...
### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...
Java获取网页中的图片资源,启动线程,智能解析URL,加载图片资源,显示图片数据,测试时候请用IE打开useTrackedImage.html 文件,载入图像文件,并获取该图像文件。本Java例子主要是利用java.awt.MediaTracker 类来...
本教程将详细介绍如何通过URL地址获取网页并生成jpg图片,同时解决32位和64位运行环境下的兼容性问题。我们将主要使用Java语言来实现这一功能,因为它具有丰富的库和跨平台的特性。 首先,我们需要一个能够处理网络...
根据给定的文件信息,我们可以总结出以下与“用Java代码下载网页图片”相关的知识点: ### 1. Java网络编程基础 #### 1.1 URL类的理解与使用 在Java中,`java.net.URL` 类提供了对统一资源定位符 (Uniform ...
在Java编程领域,生成网页图片是一项常见的需求,例如用于数据可视化、动态图表或者自定义的图形元素。这个项目,"java 生成网页图片Web源代码",显然关注的就是如何使用Java来创建和处理图片,特别是在Web环境中的...
例如,可以执行一个JavaScript脚本来获取网页的canvas元素,然后调用`toDataURL()`方法将canvas内容转换为Base64编码的图像数据。 5. **处理图像数据**:在Java端接收到Base64编码的图像数据后,将其解码并保存为...
在本文中,我们将深入探讨如何使用Java编程语言和Spring Boot框架来实现百度图片的抓取与下载功能。首先,我们需要了解几个关键的概念和技术。 **Java** 是一种广泛使用的面向对象的编程语言,它以其跨平台的特性而...
Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...
在Java编程中,抓取网页图片是一项常见的任务,特别是在数据抓取、网页分析或爬虫项目中。本文将详细介绍如何利用Java和正则表达式来抓取网页中的图片链接,并下载这些图片。以下是一个简单的Java程序示例,用于实现...
java的封装类,可以从指定网络地址,抓取地址中的网页,并分析抓取图片地址,下载到本地
Java爬虫技术是一种用于自动化网页数据抓取的编程方法,尤其在处理图片抓取时,它可以帮助我们批量下载网络上的图像资源。对于新手来说,掌握Java爬虫抓取图片的基本步骤和技巧是十分有益的。 首先,我们需要了解...
在这个"HTTP.rar"压缩包中,我们有一个Java项目,它专门设计用来从指定的HTTP网页中抓取并保存图片。 首先,我们需要理解HTTP协议。HTTP是一种应用层协议,基于TCP/IP通信,允许客户端(如浏览器)向服务器请求资源...
在Java和JSP开发中,有时我们需要处理在线编辑器上传的内容,这可能涉及到从Web页面中获取远程图片并将其保存到本地服务器。这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,...
在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...
在Java编程环境中,实现“拍照”和“截取图片”的功能涉及到多个技术层面,包括Web应用、设备访问、图像处理等。以下将详细介绍这些知识点: 1. **Java Web 应用**: Java Web应用程序是基于Java技术构建的,可以...
DJNativeSwing可能提供API来获取当前视口的图像,然后通过多次滚动和截图,合并成一个完整的网页图片。 4. **图像合成**: 由于网页可能比屏幕可视区域大,因此需要将多个小图像拼接起来。Java的图像处理库,如Java ...
在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...
Java HTML生成图片是一种技术,它允许开发者将HTML内容转换为图像格式,这在许多场景下非常有用,例如保存网页快照、制作报表或创建可分享的社交媒体图像等。本项目提供的`html2image-0.9.jar`, `...