使用 jsoup 下载图片
2016-04-10 08:15
579 查看
问题描述:
某次任务需要使用大量Logo以及背景图, 但是这些图片在某服务器上, 而且打开网址后显示的图片是以链接的形式存在, 如: logo1.jpg, 必须点开一张张下载,所以想办法写代码 下载:
某次任务需要使用大量Logo以及背景图, 但是这些图片在某服务器上, 而且打开网址后显示的图片是以链接的形式存在, 如: logo1.jpg, 必须点开一张张下载,所以想办法写代码 下载:
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.util.regex.Pattern; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class ImgDownloader{ public void getDoc() throws IOException { File f = new File("E:\\imgs"); if (!f.exists()) { f.mkdirs(); } String picUrl = "http://xxx.com/images/"; Document doc = Jsoup.connect(picUrl).get(); Elements links = doc.select("a[href]"); for (Element e : links) { if (Pattern.matches(".*?jpe?g|png|git$", e.attr("href"))) { String src = e.absUrl("href"); String imageName = src.substring(src.lastIndexOf("/") + 1, src.length()); URL url = new URL(src); URLConnection uri = url.openConnection(); InputStream is = uri.getInputStream(); OutputStream os = new FileOutputStream(new File("E:/imgs/somedir", imageName)); byte[] buf = new byte[1024]; int len = -1; while ((len = is.read(buf)) != -1) { os.write(buf, 0, len); } } } } public static void main(String[] args) throws IOException { new ImgDownloader().getDoc(); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树