环境
node
、
ts
依赖库
cheerio
: 解析HTML, 获取图片地址
download
: 实现图片下载
request
: 网页请求(已废弃,仍可以使用)
pkg
: 打包为pc平台程序
ndoemon
: 实时运行代码
实现思路
使用
request
请求网页,
cheerio
解析
HTMlL
提取图片地址信息,拼接得到下载地址,使用
download
下载到本地
//部分代码
/**
* @description 下载图片
* @param url 下载地址
* @returns
*/
const getImage = (url: string): Promise<ImageInfo[] | null> => {
return new Promise((resolve, reject) => {
request({
url,
method: 'GET',
}, (err: Error, response: Response) => {
if (err) {
console.log("请求页面错误:" + url, err);
resolve(null);
} else {
if (!response || !response?.body) {
console.log("Error: " + response);
resolve(null);
} else {
const $ = cheerio.load(response.body);
const figure = $('img.lazyload');
const urlList: ImageInfo[] = [];
figure.each((index: number, item: any) => {
const url = $(item).attr('data-src');
const size = $($('span.wall-res')[index])?.html();
let fullUrl = url.replace('https://th.wallhaven', 'https://w.wallhaven');
fullUrl = fullUrl.replace('small', 'full');
const urlPng = fullUrl.split('/').splice(-1, 3)[0];
fullUrl = fullUrl.replace(urlPng, 'wallhaven-' + urlPng);
urlList.push({
fullUrl,
smallUrl: url,
size: size
});
})
resolve(urlList);
}
}
})
})
}
实现效果
运行exe文件之后,按照提示选择对应的下载类型,然后会自动执行下载任务,下载完毕,在exe同级文件夹下会多一个wallhaven的壁纸文件夹
bandicam 2022-08-31 15-19-51-111
版权声明:本文为qq_37651169原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。