UNPKG

xlspider

Version:

nodejs's web spider tools

92 lines (86 loc) 2.51 kB
const https = require('https') const fs = require('fs') const { join } = require('path') /** * @function 获取所有英雄名称 * * @param {string} url 请求的URL地址 * @return {Promise} */ function getAllHero(url){ return new Promise((resolve, rejects) => { let rawData = '' https.get(url, res => { res.on('data', chunk => { rawData += chunk }) res.on('end', () => { const parsedData = JSON.parse(rawData) const hero = parsedData.hero || [] let outContent = '' hero.forEach(obj => { const { heroId, name } = obj outContent += `${heroId}:${name} ` }) resolve(outContent) }) }).on('error', e => { rejects(e) }) }) } /** * @function 获取选中英雄皮肤列表 * * @param {string} heroId 请求的URL地址 * @return {Promise} */ function getHeroSkin(heroId){ const heroinfo_url = `https://game.gtimg.cn/images/lol/act/img/js/hero/${heroId}.js` return new Promise((resolve, rejects) => { https.get(heroinfo_url, res => { let content = '' res.on('data', chunk => { content += chunk }) res.on('end', () => { const skinList = JSON.parse(content).skins resolve(skinList) }) }).on('error', e =>{ rejects(e.message) }) }) } /** * @function 保存英雄图片 * * @param {string} heroTitle 请求的URL地址 * @param {string} name 皮肤名称 * @param {string} imgLink 皮肤图片地址 * @return {undefined} */ function saveImg(heroTitle, name, imgLink){ https.get(imgLink, res => { res.setEncoding('binary') let buf = '' res.on('data', chunk => { buf += chunk }) res.on('end', () => { fs.writeFile(`${__dirname}/${heroTitle}/${name}.jpg`, buf, "binary", function(err){ if(err){ console.log("下载失败 fail"); } console.log(name + "下载成功 success!"); }); }) }).on('error', err => { console.error(err.message); }) } module.exports = { getAllHero, getHeroSkin, saveImg }