ts +node实现wallhaven.cc 批量下载
环境
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
🔗 下载地址
Github地址
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
