吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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



这是一个工具类,用于储存公共数据和获得文件名。
[Java] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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, 2024-11-16 17:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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