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获取网页中的图片资源,启动线程,智能解析URL,加载图片资源,显示图片数据,测试时候请用IE打开useTrackedImage.html 文件,载入图像文件,并获取该图像文件。本Java例子主要是利用java.awt.MediaTracker 类来...
java获取网网页中出现的图片及判断网页代码中是否包含有效图片
java爬虫抓取网页内容,下载网站图片。抓取整个网站的图片,获取网页完整内容
主要介绍了详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片,非常具有实用价值,需要的朋友可以参考下。
java的封装类,可以从指定网络地址,抓取地址中的网页,并分析抓取图片地址,下载到本地
通过网页url地址生成jpg图片,解决了32、64位运行环境问题
改程序利用htmlParser这个jar包实现了对网页的解析,实现了对网址,网页的标题,网页上的图片,网页的内容的额入库操作。使用mySQL数据库。但是,在网页内容的提取方面还有很多的问题,毕竟各个网页的风格不一样,...
本程序可用于在线编辑器提交内容时自动从网页中获得src图片地址,然后把远程图片下载到本地服务器,并把原网页中的地址替换成本地的地址。直接放在根目录上运行就行了。
一个html解析器,能够从指定网页中获取图片并保存。
本地图片使用二进制流存储到MySQL中,然后响应前端的传参,查询后可以显示在HEML网页中,相当于图片的简单上传和显示
没有使用任何框架,纯java se编写的网站图片抓取程序,只真对某个网站的结构,但是代码可以用来学习java net相关知识。
基于jsoup解析网页获取图片链接并下载的例子,关于下载部分有详细注释,其余地方也有方法注释,若是想用Java做爬虫初学的话,可以看看,忘有用。(附源码,pom文件,和jsoup的jar包)免去你再找了
动态抓取网页内容,生成word文件,包含具体demo和所需jar包
网页图片抓取器,网页图片抓取工具,网页图片抓取
java URL转PDF文件,网页内容转PDF文件
肯定能用,开发环境java8,idea,springboot,包含了打包遇到的问题,不动的可以参考这个文件里面文本的文章,看了再不懂那就可以放弃了。
请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则...
这个是通过Jsoup去获取百度网页的内容,jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据,可以看作...