文 | ssw
来源:Python 技术「ID: pythonall」
翻看自己的博客,边听音乐,边看最近发表过哪些文章。发现博文的背景图都已看厌,用了2个月后,再好看的美女也欣赏不来了。
喜新厌旧乃人之常情,我想该换一批图了。
去哪里下载一批高清大图,如何快速给它们分配 url 地址,如何替换原来的一批图(9张)?还别说,这么多要做的事,在 python 加持下,几分钟就搞好了,看到这麻利的速度,笑了😀。
博客地址 http://ssw.fit/
花费时间最多的反而是挑选9张喜欢的图,选择困难症犯了,曹操说袁绍“好谋无断”,多半也是这病。
LOL英雄图片下载
实现过程很简单,最主要的是找到2个 json 文件
hero_list.js
https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js
单个英雄.js
https://game.gtimg.cn/images/lol/act/img/js/hero/{}.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 = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'self.hero_url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/{}.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 respexcept Exception as e:print(e)return Nonedef start(self):#获取英雄列表resp = self.send_get(self.hero_list_url)if resp:hero_list_text = resp.texthero_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']).contenthero_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)@staticmethoddef 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 网址
以前介绍过,我建了上传页面,就是方便此类场景
上传页面 http://ssw.fit/upload
上传好的图片:
替换9张图
修改 vuepress 的 NoteAbstractItem.vue 文件,将图片地址改为新的 url 网址
<div class="draw"><img :src="`http://ssw.fit/free/gd0${imgIndex}.jpg`" alt=""></div>
然后打包,提交 git 仓库
npm run build
git add dist
git commit 1
git push
jenkins 进行构建,把打包好的文件上传到腾讯云 linux 服务器上
这样就更新好了。
小结
文章写起来长,其实操作只要几步。
排版码文字也是一件比较辛苦的事,很少有一气呵成的。有没有自动写文章的机器,把你的想法告诉它,资料都给它,然后它自动写好一篇比较通顺的文章,你只要审审稿,简单修改几处就可以了?很显然,那种写网文的机器还达不到要求,周诰殷盘,佶屈聱牙。
本文是由 Python技术 公众号粉丝 ssw 投稿,欢迎大家继续踊跃投稿!
PS:Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划!
老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【神秘礼包获取方式】
识别文末二维码,回复:1024