`

java 抓取网页图片

阅读更多
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抓取网页图片链接地址 #### 知识点概览 本文将详细介绍如何使用Java编程语言抓取网页上的图片链接。此技术广泛应用于网络爬虫、数据分析等领域,能够帮助开发者快速获取所需的图像资源。 #### 技术背景与...

    java爬虫,抓取网页图片

    通过发送HTTP请求到服务器,获取响应数据,从而获取网页内容。 2. **HTML解析**:抓取到的网页内容通常是HTML格式,因此需要解析HTML来提取图片信息。Java提供了多种库,如Jsoup,用于解析HTML文档,找出图片链接。...

    java获取网网页中出现的图片及判断网页代码中是否包含有效图片

    ### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...

    Java获取网页中url的图片资源.rar

    Java获取网页中的图片资源,启动线程,智能解析URL,加载图片资源,显示图片数据,测试时候请用IE打开useTrackedImage.html 文件,载入图像文件,并获取该图像文件。本Java例子主要是利用java.awt.MediaTracker 类来...

    通过URL地址获取网页生成jpg图片

    本教程将详细介绍如何通过URL地址获取网页并生成jpg图片,同时解决32位和64位运行环境下的兼容性问题。我们将主要使用Java语言来实现这一功能,因为它具有丰富的库和跨平台的特性。 首先,我们需要一个能够处理网络...

    用java代码下载网页图片

    根据给定的文件信息,我们可以总结出以下与“用Java代码下载网页图片”相关的知识点: ### 1. Java网络编程基础 #### 1.1 URL类的理解与使用 在Java中,`java.net.URL` 类提供了对统一资源定位符 (Uniform ...

    java 生成网页图片Web源代码

    在Java编程领域,生成网页图片是一项常见的需求,例如用于数据可视化、动态图表或者自定义的图形元素。这个项目,"java 生成网页图片Web源代码",显然关注的就是如何使用Java来创建和处理图片,特别是在Web环境中的...

    java 实现整张网页快照

    例如,可以执行一个JavaScript脚本来获取网页的canvas元素,然后调用`toDataURL()`方法将canvas内容转换为Base64编码的图像数据。 5. **处理图像数据**:在Java端接收到Base64编码的图像数据后,将其解码并保存为...

    Java抓取百度图片

    在本文中,我们将深入探讨如何使用Java编程语言和Spring Boot框架来实现百度图片的抓取与下载功能。首先,我们需要了解几个关键的概念和技术。 **Java** 是一种广泛使用的面向对象的编程语言,它以其跨平台的特性而...

    java爬虫抓取网页内容,下载网站图片

    Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...

    详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片

    在Java编程中,抓取网页图片是一项常见的任务,特别是在数据抓取、网页分析或爬虫项目中。本文将详细介绍如何利用Java和正则表达式来抓取网页中的图片链接,并下载这些图片。以下是一个简单的Java程序示例,用于实现...

    java抓取html中的图片

    java的封装类,可以从指定网络地址,抓取地址中的网页,并分析抓取图片地址,下载到本地

    java爬虫抓取图片

    Java爬虫技术是一种用于自动化网页数据抓取的编程方法,尤其在处理图片抓取时,它可以帮助我们批量下载网络上的图像资源。对于新手来说,掌握Java爬虫抓取图片的基本步骤和技巧是十分有益的。 首先,我们需要了解...

    http.rar_HTTP网页_JAVA 获取http_html_java 获取网页_指定提取网页

    在这个"HTTP.rar"压缩包中,我们有一个Java项目,它专门设计用来从指定的HTTP网页中抓取并保存图片。 首先,我们需要理解HTTP协议。HTTP是一种应用层协议,基于TCP/IP通信,允许客户端(如浏览器)向服务器请求资源...

    java,jsp读取远程图片到本地服务器

    在Java和JSP开发中,有时我们需要处理在线编辑器上传的内容,这可能涉及到从Web页面中获取远程图片并将其保存到本地服务器。这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,...

    java实现本地读取图片存储到数据库中并在html网页显示

    在本文中,我们将深入探讨如何使用Java实现在本地读取图片并将其存储到数据库中,之后再通过HTML页面显示这些图片。这个过程涉及到的主要技术包括Java编程、数据库操作(特别是MySQL)以及前后端交互。 首先,我们...

    java 拍照 截取图片

    在Java编程环境中,实现“拍照”和“截取图片”的功能涉及到多个技术层面,包括Web应用、设备访问、图像处理等。以下将详细介绍这些知识点: 1. **Java Web 应用**: Java Web应用程序是基于Java技术构建的,可以...

    纯Java实现整个网页截图项目源代码

    DJNativeSwing可能提供API来获取当前视口的图像,然后通过多次滚动和截图,合并成一个完整的网页图片。 4. **图像合成**: 由于网页可能比屏幕可视区域大,因此需要将多个小图像拼接起来。Java的图像处理库,如Java ...

    JAVA线程根据给定URL生成网页快照

    在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...

    java html生成图片

    Java HTML生成图片是一种技术,它允许开发者将HTML内容转换为图像格式,这在许多场景下非常有用,例如保存网页快照、制作报表或创建可分享的社交媒体图像等。本项目提供的`html2image-0.9.jar`, `...

Global site tag (gtag.js) - Google Analytics