1 引言
因为某度引擎越来越不给力,更换了某应之后,发现每天都有壁纸更新,而且优美。觉得每日保存一下,作为电脑壁纸使用也是不错的。
当然每天手动保存一下,也是可以的,周末估计就没有时间了。最终的解决方案,还是需要能够自动下载。
2 技术选型
下载壁纸的核心思想是HTTP请求,并将保存响应保存下来。
由于个人使用Java的时间久了,更习惯Java,就选Java方式下载了。再加上近些年Hutool工具的不断迭代更新,不用再封装工具类,方便了很多。
3 框架选择
主要jar包
springboot-2.6.6
hutool-5.8.25
jsoup-1.18.3
4 网站分析
4.1 获取网站壁纸ID
1、访问https://cn.bing.com/
,查看返回的HTML。
2、分析网页,找到了背景图片的http地址,如图。此时获取到的地址:https://s.cn.bing.net/th?id=OHR.IceHoleOtter_ZH-CN0106321041_1920x1080.webp&qlt=50
,可以直接访问。到此,那这个背景图片也可以直接访问保存。
3、但是由于现在屏幕普遍已经2K、4K了,如果能下载4K图片最好了。这时,我们访问下bing每日壁纸,然后点击和Bing位置,一样的图片查看4k下载链接。https://global.bing.com/th?id=OHR.IceHoleOtter_ZH-CN0106321041_UHD.jpg
4、经过2和3步,不难发现,图片的ID。OHR.IceHoleOtter_ZH-CN0106321041
4.2 总结
步骤1:
访问Bing https://cn.bing.com/
,获取每日壁纸的ID。
步骤2:
使用模板https://global.bing.com/th?id={
{图片ID}}_UHD.jpg
,获取下载的地址。
步骤3:
使用hutool工具类下载。
4.3 核心代码
入口类,设置定时时间,每日9点下载
package com.spider.downloader.bing;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.spider.handler.bing.BingWallPaperHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.