java获取Bing壁纸

news/2025/2/5 6:59:11/

首先声明这是看了大佬得得博客封装的一个获取bing壁纸的方法

目的

平时觉得bing的壁纸挺好看的的就想获取它的把一些图片保存起来,所以就找了一下相关信息,于是就有了这篇博客。

环境准备

这里我使用的是springboot 自带的 【RestTemplate】来请求接口 和 【Gson】 来解析数据

API地址

https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN

请求参数:

image

获取到的json数据格式截取了一部分

{"images": [{"startdate": "20220422","fullstartdate": "202204221600","enddate": "20220423","url": "/th?id=OHR.VictoriaMemorialKolkata_ZH-CN5801450386_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp","urlbase": "/th?id=OHR.VictoriaMemorialKolkata_ZH-CN5801450386","copyright": "维多利亚纪念堂,印度加尔各答 (© Roop_Dey/Shutterstock)","copyrightlink": "https://www.bing.com/search?q=%E7%BB%B4%E5%A4%9A%E5%88%A9%E4%BA%9A%E7%BA%AA%E5%BF%B5%E5%A0%82&form=hpcapt&mkt=zh-cn","title": "一座献给皇室的纪念堂","quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20220422_VictoriaMemorialKolkata%22&FORM=HPQUIZ","wp": true,"hsh": "4b7d05930542cff5ce1674163c97e073","drk": 1,"top": 1,"bot": 1,"hs": []}]

上代码

搞个对象用于对应 json格式字段

import lombok.Data;import java.util.List;
@Data
public class BingImage {private String startdate;private String fullstartdate;private String enddate;private String url;private String urlbase;private String copyright;private String copyrightlink;private String title;private String quiz;private boolean wp;private String hsh;private int drk;private int top;private int bot;private List<String> hs;
}
package com.example.demo.entity;import lombok.Data;//用于保存图片地址、版权信息、日期 
@Data
public class Image {private  String url;private  String copyright;private  String enddate;}

封装的方法源码

import com.example.demo.entity.BingImage;
import com.example.demo.entity.Image;
import com.google.common.reflect.TypeToken;
import com.google.gson.*;
import org.springframework.web.client.RestTemplate;import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class getBingImage {private static String URL="https://cn.bing.com/HPImageArchive.aspx?";  // 返回格式 jsonprivate static String format="js";  // 返回格式 jsonprivate static String mkt="zh-CN"; // 地区private static String idx="0";  //请求图片截止天数private static String n ="8";  //请求数量public List<Image> getImage(){RestTemplate restTemplate = new RestTemplate();Map<String,String> map = new HashMap<String,String>();map.put("format",format);map.put("mkt",mkt);map.put("idx",idx);map.put("n",n);String img = restTemplate.getForObject(URL + "format={format}&idx={idx}&n={n}&mkt={mkt}",String.class,map);JsonObject jsonObject = new JsonParser().parse(img).getAsJsonObject();System.out.println(jsonObject.toString());// 下面 这个数组里面就是获取到的壁纸集合信息  JsonArray array = jsonObject.getAsJsonArray("images");Gson gson = new Gson();String content ;List<Image> images = new ArrayList<Image>();for (JsonElement user : array) {Image image = new Image();//通过反射 得到UserBean.classBingImage bing = gson.fromJson(user, new TypeToken<BingImage>() {}.getType());image.setUrl("https://cn.bing.com"+bing.getUrl());image.setEnddate(LocalDate.now().toString());content = bing.getCopyright();if (content.length()>0){String addr = content.substring(0,content.indexOf("("));image.setCopyright(addr);images.add(image);}}return  images;}
}

测试

 public static void main(String[] args) {try {for (Image item : new getBingImage().getImage()){System.out.println(item.getUrl());}} catch (Exception e) {e.printStackTrace();}}

image

我们只需要把地址保存下来,在我们想要使用的时候就引用地址就行了。 例如:https://cn.bing.com/th?id=OHR.EarthDay2022_ZH-CN5733809629_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp

引用博客地址 https://blog.csdn.net/m0_37682004/article/details/82314055


http://www.ppmy.cn/news/687871.html

相关文章

双击下载当日bing壁纸

... 语言 go直接贴代码 语言 go 其实python 更加方便&#xff0c;但是不好打包&#xff0c;&#xff0c;不说&#xff0c;go就是香 直接贴代码 原本以为&#xff0c;还要一些其他的东西&#xff0c;但是发现直接赢刚就是完事&#xff0c;&#xff0c;代码简单&#xff0c;这里…

Python从Bing壁纸的API接口保存图片

先贴代码&#xff1a; from urllib import request from lxml import etree from time import localtime from os import getcwddef Get_Image():urlrhttps://cn.bing.com/HPImageArchive.aspx?formatxml&idx0&n1&mktzh-CNfor res0 in etree.HTML(request.urlope…

使用Python获取bing壁纸接口

原文地址–>点击进入阅读 注意&#xff1a;该接口和代码仅供学习使用&#xff01;请勿将传回的壁纸用于非法用途&#xff01;请尊重版权&#xff01;树立版权意识&#xff01; 由于读者自身行为导致的侵权&#xff0c;作者概不负责&#xff01; Bing壁纸 Bing的壁纸是每天…

python爬虫 bing壁纸

最近学习python爬虫,写了一个小例子.主要用来爬取bing壁纸. 源码如下: ‘’’ import requests from bs4 import BeautifulSoup import re import os from urllib.request import urlretrieve import time from email.header import Header from email.mime.text import …

建了个网站,可以下载每日bing壁纸

每日bing壁纸 地址 &#xff1a; http://www.rampage.xin/bing/

设置bing桌面壁纸

golang语言编写&#xff0c;设置windows桌面壁纸&#xff0c;图片来自于必应网站&#xff08;cn.bing.com&#xff09; github源码地址&#xff1a;https://github.com/tujiaw/gowallpaper 有兴趣的Star一下吧 编译好的程序&#xff1a;https://pan.baidu.com/s/1l5OW9GeuUF0…

[深入浅出Windows 10]应用实战:Bing在线壁纸

本章介绍一个使用Bing搜索引擎背景图接口实现的一个应用——Bing在线壁纸&#xff0c;讲解如何使用网络的接口来实现一个壁纸下载&#xff0c;壁纸列表展示和网络请求封装的内容。通过该例子我们可以学习到如何使用网络编程的知识和开放的接口来实现一些有趣的应用程序&#xf…

探索性测试: 工具和方法的综合应用

1、前言 2、工具的使用 1、测试管理工具 2、缺陷跟踪工具 3、测试自动化工具 4、探索性测试工具 5、代码覆盖率工具 6、日志分析工具 7、网络抓包工具 8、数据库查询工具 9、并发和负载测试工具 10、安全测试工具 11、API测试工具 12、数据生成工具 13、异常处理和边界测试工具…