吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5512|回复: 10
收起左侧

[Java 转载] 【JAVA】批量下载必应壁纸

[复制链接]
地下室青年 发表于 2019-3-4 21:46
本帖最后由 地下室青年 于 2019-3-4 21:57 编辑

本人新手,初学java,还望各位不吝赐教。谢谢。
下面开始正题。
你还在用千篇一律的微软桌面吗?你还在为寻找一个好看的桌面而奔波吗?
必应首页的高质量图片,总有适合你!!
微软只提供几天的壁纸,但是有些网站保留了下来。
例如https://bing.ioliu.cn/ranking



这是一个工具类,用于储存公共数据和获得文件名。
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package biying;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
 
public class Utils {
         
        //记录天数
        public static int day = 0;
         
        //获得图片的作为首页的年月日作为文件名
        public static String getName(int day) {
                 
                //获得当前时间的万年历
                Calendar calendar = Calendar.getInstance();
                 
                //根据传进来的天数调整成图片当天的时间
                calendar.add(Calendar.DAY_OF_MONTH, -day);
                 
                //根据调整的万年历获得时间
                Date date = calendar.getTime();
                 
                //按照我们的时间格调整
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
                String fileName = sdf.format(date);
                return fileName;
        }
}



真正用来下载(开多线程)
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package biying;
 
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
 
public class Download4 extends Thread{
         
        public void run() {
                 
                while(true){
                 
                        int day ;
                        //操作公共数据,需要进行加锁
                        synchronized (Class.class) {
                                day = Utils.day++;
                        }
                        //下载30天内的图片,数字可以调整,想下多少就下多少,不超过他限度就可以
                        if(day > 35) {
                                break;
                        }
                 
                        String u = "https://bing.ioliu.cn/v1?d="+ day +"&w=1920&h=1080";
                        URL url;
                         
                        try {
                                url = new URL(u);
                                DataInputStream dis = new DataInputStream(url.openStream());
                                 
                                File f = new File("d:\\biying\\");
                                 
                                //路径不存在或者不是文件夹,就创建一个
                                if(!f.exists() || f.isFile()) {
                                        f.mkdir();
                                }
                                 
                                //根据天数获得文件名
                                String fileName = Utils.getName(day);
                                File file = new File("d:\\biying\\"+fileName+".jpg");
                                //为了避免重复下载,所以需要判断。本来判断一下路径即可,但是实际发现有些下载了102字节
                                //超过200字节,跳过本次,继续下一次循环
                                if(file.exists() || file.length() > 200) {
                                        continue;
                                }
                                FileOutputStream fos = new FileOutputStream(file);
                                 
                                byte[] bs = new byte[8192];
                                int len;
                                 
                                while ((len = dis.read(bs)) != -1) {
                                        fos.write(bs, 0, len);
                                }
                                fos.close();
                                dis.close();
                                 
                        } catch (MalformedURLException e) {
                                e.printStackTrace();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
 
}







下面就是开启多线程执行下载的方法
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
package biying;
 
public class Test4 {
 
 
        public static void main(String[] args)  {
                 
                //好像只能开三个线程,多了就报502了
                Download4 download1 = new Download4();
                Download4 download2 = new Download4();
                Download4 download3 = new Download4();
                 
                download1.start();
                download2.start();
                download3.start();
        }
 
}





不足(大神轻拍):
1.用户不能自行选择下载数量,没有检测d盘下是否。
2.提示不完善。
3.图片的完善信息没下载


这百度云分享的(那我这是在做什么,我是谁,我在哪
https://www.52pojie.cn/thread-851384-1-1.html
https://www.52pojie.cn/thread-868059-1-1.html





害羞的源码:
链接: 链接: https://pan.baidu.com/s/1LgiGjJ1wMXjnkhjRdutxyw 提取码: jsty 复制这段内容后打开百度网盘手机App,操作更方便哦
解压导入ecplise



参考资料:
https://www.52pojie.cn/thread-731013-1-1.html
https://www.cnblogs.com/phper12580/p/9981397.html(这里提供的接口https://cn.bing.com/cnhp/coverstory?d=20181118下载的图片会有必应搜索框)

https://github.com/xCss/bing

https://bing.ioliu.cn/ranking







免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
最爱升级 + 1 + 1 用心讨论,共获提升!
chen1834974176 + 1 + 1 用心讨论,共获提升!
itfive + 1 + 1 学习一下
李村夫 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

抢我所爱的你 发表于 2019-3-5 12:27
帖子先mark一下,晚上研究下。谢谢楼主了
 楼主| 地下室青年 发表于 2019-3-8 08:45
皮蛋哟 发表于 2019-3-18 20:28
 楼主| 地下室青年 发表于 2019-3-20 08:49

相互学习,共同进步
nikeleeee 发表于 2019-8-2 11:06
期待必应壁纸合集哈哈
头像被屏蔽
安生123 发表于 2019-8-2 11:21
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
安生123 发表于 2019-8-2 11:26
提示: 作者被禁止或删除 内容自动屏蔽
猫南北爱上狗东西 发表于 2019-11-25 22:02
没有证书报错
解决方法参考https://www.cnblogs.com/weibanggang/p/11331524.html
ymhld 发表于 2019-11-26 08:58
一直用必应的壁纸,有的图非常震憾,顶一个
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-21 21:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表