需求(Java);利用Jsoup架包获取指定网页的全部图片,并自动下载到指定文件夹中
来源:互联网 发布:c 高级编程 第7版 pdf 编辑:程序博客网 时间:2024/05/20 12:25
看清标题,读懂需求,你就成功了一半了!跟往常文章一样,简单粗暴是我的风格,事多还得码代码,不多BB,直接上源码,慢慢读,结束相信你一点会很爽,有疑惑直接留言,我常在!
目标网页URL: http://www.qq.com/
保存地址: d:/img (自动生成img文件夹)
Java源码:
package cn.ouc.jsoup;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class jsoupByPicture {
public static void main(String[] args) throws IOException {
run("http://www.qq.com/","d:/img");
}
public static void run(String url,String filePath) {
Connection connect = Jsoup.connect(url);
try {
// 得到Document对象
Document document = connect.get();
// 查找所有img标签
Elements imgs = document.getElementsByTag("img");
System.out.println("共检测到下列图片URL:");
System.out.println("开始下载");
// 遍历img标签并获得src的属性
for (Element element : imgs) {
//获取每个img标签URL "abs:"表示绝对路径
String imgSrc = element.attr("abs:src");
// 打印URL
System.out.println(imgSrc);
//下载图片到本地
jsoupByPicture.downImages(filePath, imgSrc);
}
System.out.println("下载完成");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void downImages(String filePath, String imgUrl) {
// TODO Auto-generated method stub
File fileDir=new File(filePath);//若存取文件夹没有,则先创建
if (!fileDir.exists()) {
fileDir.mkdirs();
}
//截取图片文件名
String fileName=imgUrl.substring(imgUrl.lastIndexOf('/')+1,imgUrl.length());
try {
// 文件名里面可能有中文或者空格,所以这里要进行处理。但空格又会被URLEncoder转义为加号
String urlTail = URLEncoder.encode(fileName, "UTF-8");
// 因此要将加号转化为UTF-8格式的%20
imgUrl = imgUrl.substring(0, imgUrl.lastIndexOf('/') + 1) + urlTail.replaceAll("\\+", "\\%20");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//写出路径
File file=new File(filePath+File.separator+fileName);
if(!file.exists())
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
//获取图片URL
URL url=new URL(imgUrl);
//获得连接
URLConnection connection=url.openConnection();
//设置10秒的响应时间
connection.setConnectTimeout(10*1000);
//获得输入流
InputStream in=connection.getInputStream();
//获得输出流
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(file));
//构建缓冲区
byte[] buf=new byte[1024];
int size;
//写入到文件
while (-1!=(size=in.read(buf))) {
out.write(buf,0,size);
}
out.close();
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 需求(Java);利用Jsoup架包获取指定网页的全部图片,并自动下载到指定文件夹中
- 需求(Java语言实现):对存有图片URL的txt文件进行逐行读取,自行下载txt文件中的图片到指定文件夹中
- Java Jsoup抓取符合指定大小的网页的图片,并保存在本地磁盘
- android 图片获取策略,下载并保存至指定文件夹
- ASP利用XML打包指定文件夹 并上传到WEB目录中,自行解包
- ASP利用XML打包指定文件夹 并上传到WEB目录中,自行解包
- Java获取指定文件夹内的全部文件名称
- java复制文件夹下全部的文件到指定目录
- 基于Java语言完成:使用URL下载指定的文件保存到指定的文件夹中
- Java 从网页指定url获取图片并压缩到本地
- python获取网页中所有图片并筛选指定分辨率
- JAVA远程下载zip包并解压到指定目录
- 从指定网页自动下载其中所有的图片
- 使用正则表达式写一个网页爬虫案例获取指定文档中的邮件地址保存到自己指定的文件夹中
- java利用Ant解压指定zip压缩包到指定文件夹
- 把下载的文件存到指定的文件夹中
- jsoup爬取指定网页的url和图片
- 批量保存图片到指定文件夹中
- Oracle:如何区分空值与空字符串
- bzoj 4827 [Hnoi2017]礼物(FFT)
- 计算机图形学
- FZU 2214 Knapsack problem (超大容量背包)
- 6、Oracle单行函数
- 需求(Java);利用Jsoup架包获取指定网页的全部图片,并自动下载到指定文件夹中
- 【java集合】自己实现简易的HashMap~改良
- 今日内容介绍 1、自定义类型的定义及使用 2、自定义类的内存图 3、ArrayList集合的基本功能 4、随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型
- day07笔记
- Spring 整合 Quartz 实现动态定时任务
- LVS负载均衡服务的工作原理及方式
- 基于事件通知的重叠I/O网络模型
- matlab如何写一个类
- 编译caffe出现错误 opencv