龙空技术网

用LOL英雄图片点缀你的博客

博学多才的叶慢慢 93

前言:

今天你们对“jslol”大致比较注意,大家都需要分析一些“jslol”的相关内容。那么小编也在网络上汇集了一些对于“jslol””的相关资讯,希望你们能喜欢,咱们一起来学习一下吧!

文 | ssw

来源:Python 技术

翻看自己的博客,边听音乐,边看最近发表过哪些文章。发现博文的背景图都已看厌,用了2个月后,再好看的美女也欣赏不来了。

喜新厌旧乃人之常情,我想该换一批图了。

去哪里下载一批高清大图,如何快速给它们分配 url 地址,如何替换原来的一批图(9张)?还别说,这么多要做的事,在 python 加持下,几分钟就搞好了,看到这麻利的速度,笑了。

博客地址

花费时间最多的反而是挑选9张喜欢的图,选择困难症犯了,曹操说袁绍“好谋无断”,多半也是这病。

LOL英雄图片下载

实现过程很简单,最主要的是找到2个 json 文件

hero_list.js

单个英雄.js

{}.js

图片链接在 mainImg 里:

完整代码:

import requests,json,time,os,reclass LOLHeroSpider:    def __init__(self):        self.headers = {            'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Mobile Safari/537.36'        }        self.hero_list_url = ';        self.hero_url = '{}.js'        self.base_path = os.path.join('d:'+os.path.sep,'英雄联盟')    def send_get(self,url):        try:            resp = requests.get(url,headers = self.headers)            assert resp.status_code == 200,'{}请求失败'.format(url)            return resp        except Exception as e:            print(e)            return None    def start(self):        #获取英雄列表        resp = self.send_get(self.hero_list_url)        if resp:            hero_list_text = resp.text            hero_list_dict = json.loads(hero_list_text)            self.process_heroes(**hero_list_dict)        else:            print('英雄列表为空,请检查获取URL:{}'.format(self.hero_list_url))    def process_heroes(self,**hero_list_dict):        # 获取英雄详细信息        for hero in hero_list_dict['hero']:            hero_info_url = self.hero_url.format(hero['heroId'])            resp= self.send_get(hero_info_url)            if resp:                hero_info_dict = json.loads(resp.text)                self.process_hero(**hero_info_dict)            else:                print('获取英雄:{}失败,请检查获取URL:{}'.format(hero['name'],self.hero_list_url))    def process_hero(self,**hero_info_dict):        hero = hero_info_dict['hero']        skins = hero_info_dict['skins']        for skin in skins:            # 获取图片内容            if skin['mainImg']:                skin_content = self.send_get(skin['mainImg']).content                hero_image_name = '{}.jpg'.format(skin['name'])                hero_image_dir = os.path.join(self.base_path, hero['name'] + hero['title'])                self.save_image(hero_image_dir,hero_image_name,skin_content)        print('hero:{},skins:{}张,处理完成'.format(hero['name'],len(skins)))        time.sleep(1)    @staticmethod    def save_image(image_dir,image_name,image_content):        if not os.path.exists(image_dir):            os.makedirs(image_dir)        try:            hero_image_path = os.path.join(image_dir,re.sub(r'[/|?]','',image_name))            with open(hero_image_path, 'wb') as image:                image.write(image_content)        except Exception as e:            print('{}保存失败,错误原因:{}'.format(hero_image_path,e))if __name__ == '__main__':    LOLHeroSpider().start()
分配 url 网址

以前介绍过,我建了上传页面,就是方便此类场景

上传页面

上传好的图片:

替换9张图

修改 vuepress 的 NoteAbstractItem.vue 文件,将图片地址改为新的 url 网址

<div class="draw"><img :src="`{imgIndex}.jpg`" alt=""></div>

然后打包,提交 git 仓库

npm run buildgit add distgit commit 1git push

jenkins 进行构建,把打包好的文件上传到腾讯云 linux 服务器上

这样就更新好了。

小结

文章写起来长,其实操作只要几步。

排版码文字也是一件比较辛苦的事,很少有一气呵成的。有没有自动写文章的机器,把你的想法告诉它,资料都给它,然后它自动写好一篇比较通顺的文章,你只要审审稿,简单修改几处就可以了?很显然,那种写网文的机器还达不到要求,周诰殷盘,佶屈聱牙。

标签: #jslol