
必应的每日壁纸的质量非常高,那么如何将必应的每日壁纸保存下来,作为桌面壁纸轮播呢
主要参考:https://www.cnblogs.com/half-bug/p/12652562.html
修改点:
- 保存图片到当前目录
- 保存相关信息到csv,以便后续可能展示
- 增加了个写日志,方便查看
使用 forever 后台即可实现每天获取并保存下来,forever start .\bing-daily.js
下面是完整的代码以供参考
// 引包
const https = require('https')
const request = require('request')
const fs = require('fs')
var sd = require('silly-datetime');
const rootUrl = 'https://cn.bing.com'
const xhrUrl = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1586183781119&pid=hp&uhd=1&uhdwidth=2880&uhdheight=1620' // xhr 请求地址
const jpgUrl = '_UHD.jpg' // 后缀
const jsonFile = './bing-daily.csv'
const logFile = './debug.log'
// 获取当天高清图
const getToday = ()=>{
// 发送请求
https.get(xhrUrl, res => {
let rawData = '';
res.on('data', (chunk) => {
rawData += chunk;
})
res.on('end', () => {
const parsedData = JSON.parse(rawData);
var img = parsedData.images[0]
var {enddate, urlbase, title, copyright} = img;
var fullUrl = rootUrl + urlbase + jpgUrl
var line = enddate + ", " + fullUrl + ", " + title + ", " + copyright + "\n"
var filename = './' + enddate + '.jpg'
console.log(line)
request(fullUrl).pipe(fs.createWriteStream(filename))
fs.appendFile(jsonFile, line, (err) => {})
var logLine = sd.format(Date(), 'YYYY-MM-DD HH:mm:ss') + ' ' + line
fs.appendFile(logFile, logLine, (err) => {})
})
})
}
// 每天执行一遍
//getToday();
setInterval(getToday, 24*60*60*1000)
阅读量
loading...