【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序

目录

  • 前言
  • 产品特性
  • 产品体验
    • 创建项目
    • 运行效果
  • 代码分析
  • 完整代码
  • 总结

前言

在那个梦幻般的云端,在浪漫的编程世界中,腾讯云的Cloud Studio如约而至。这是一个集成式开发环境,可在浏览器中呈现,为所有开发者提供了一个稳定、神奇的工作站。不同于寻常,无需费心安装,只需轻触浏览器,即可进入云端天地。在这片仙境中,它呈现出了鲜明的特点,有着代码的颜色高亮,充满了自动补全的魔力,更融入了Git的炽热与终端的冰凉。这仿佛是一个IDE的世界,将一切功能融为一体,融汇了所有的精华。不仅如此,它还支持实时调试,如同一位随时相伴的爱侣,更能通过插件扩展带来无限可能。就像一场心灵之旅,它能助开发者快速完成各类应用的诞生,编译与部署的步伐也变得轻盈顺畅。云端的奇迹,正由Cloud Studio引领,让我们一起探索这未曾想象的奇妙世界吧!

产品特性

  • 曾经有一个名叫协作套件的神秘存在,他是开发人员之间的纽带,让他们的工作能够携手并进,彼此互助联动。在这个奇妙的世界里,开发工作变得更加便捷和高效。

  • 控制台,就如同一座精致明亮的宫殿,为开发者们提供了一个清晰而舒适的工作空间。在这里,项目环境的创建变得轻而易举,简单而实用,让每个人都能够快速上手。

  • 持久化,就像是一位无私的守护者,时刻保护着开发者们的劳动成果。无论何时,他都能够保存工作进程,弹性扩容,让开发者们无需再担心电力中断或存储空间不足的困扰。

  • 而云端部署套件,则像是一道神奇的魔法,支持各种框架的一键部署至云函数。同时,他也提供了自定义部署的机会,让开发者们能够全身心地专注于代码的创作,不再分心于繁琐的配置。

  • 全功能,就像是一位隐形的舞者,在任何时间、任何地点,都能够开展编码的舞蹈。他让开发者们无需下载和安装,便能够自由自在地创作,享受到流畅而优雅的编程体验,仿佛悠然自得地漫步在娘美本地的IDE中。

  • 多插件,则如同一串珍贵的项链,如果默认配置无法满足你的需求,他们便是你的解药。在线安装这些插件,能够为你提供更加出色的使用体验,让你感受到无与伦比的魅力。

  • 自定义模板,则是一本记载着自由人生的神秘手札,它允许你将当前项目作为模板,覆盖到Git仓库的项目、普通项目、示例项目等等。通过它,你能够创造属于自己的独特世界,让每一次的开发都成为一次奇妙的冒险。

  • 多环境,就像是一张多彩的画卷,内置着Node.js、Java、Python等常用的环境。同时,他也能够连接到云服务器,让你拥有自主配置的能力,在技术的海洋中尽情探索。

  • 这就是产品特性的魅力所在,一个让人无法抗拒的世界,让每个开发者都沉醉其中,追寻梦想的舞台。无论你是谁,无论你身在何处,这个世界都将为你展开史诗般的篇章。

产品体验

cloud studio 提供了多种登录方式 , 非常的人性化, 然而他的人性化不仅仅是 登录, cloudstudio 还提供了丰富的开发模板,并且贴心的做了分类

  • 常用模板
  • 框架模板
  • 云原生模板
  • 建站模板

【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序_第1张图片
今天我们就使用这个云端ide 来编写一个 超牛的程序

创建项目

选择新建模板 , 配置如图

【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序_第2张图片

进入创建好的项目中 , 新建一个 piffu.py的文件 , 开始代码的编写

【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序_第3张图片

  • 在终端下载相关依赖
  • 下载虚拟环境
    python3 -m venv myenv
    【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序_第4张图片
    执行命令 python3 pifu.py 运行程序

运行效果

【腾讯云 Cloud Studio 实战训练营】cloud studio 编写下载王者荣耀皮肤的程序_第5张图片

代码分析

  1. 导入requests模块,用于发送HTTP请求。
import requests
  1. 导入lxml和os模块,用于解析HTML代码和创建目录。
from lxml import etree
import os
  1. 导入time模块的sleep函数,用于添加延迟。
from time import sleep
  1. 通过设置User-Agent伪装请求头,模拟浏览器访问。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}
  1. 定义英雄列表页的URL。
hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
  1. 使用requests模块发送GET请求获取英雄列表页的响应。
hero_list_resp = requests.get(hero_list_url, headers=headers)
  1. 遍历英雄列表页的JSON数据,从中获取英雄的ID(ename)和名称(cname)。
for h in hero_list_resp.json():
    ename = h.get('ename')
    cname = h.get('cname')
  1. 如果对应的英雄目录不存在,则创建该目录。
    if not os.path.exists(cname):
        os.makedirs(cname)
  1. 构建英雄详情页的URL,其中ename是英雄的ID。
    hero_info_url = f'https://pvp.qq.com/web201605/herodetail/{ename}.shtml'
  1. 使用requests模块发送GET请求获取英雄详情页的响应。
    hero_info_resp = requests.get(hero_info_url, headers=headers)
  1. 设置响应内容的编码为gbk。
    hero_info_resp.encoding = 'gbk'
  1. 使用lxml的etree模块解析HTML代码。
    e = etree.HTML(hero_info_resp.text)
  1. 通过XPath表达式提取包含皮肤图片URL的数据。
    names = e.xpath('//ul[@class="pic-pf-list pic-pf-list3"]/@data-imgname')[0]
  1. 对于每一个皮肤图片URL,从名称中截取文件名,并将URL中的特殊字符"&"之后的内容去除。
    names = [name[0:name.index('&')] for name in names.split('|')]
  1. 遍历每一个皮肤图片URL,发送GET请求并保存图片到本地。
    for i, n in enumerate(names):
        resp = requests.get(f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{i+1}.jpg', headers=headers)
        with open(f'{cname}/{n}.jpg', 'wb') as f:
            f.write(resp.content)
  1. 打印下载成功的消息,并使用sleep函数延迟1秒。
        print(f'已下载:{n} 的皮肤')
        sleep(1)

这段代码通过发送HTTP请求和解析HTML代码,实现了从英雄联盟官网下载英雄皮肤图片的功能。它遍历英雄列表,访问每个英雄的详情页,并提取出皮肤图片的URL,然后将图片保存到对应的目录中。需要注意的是,代码中没有进行异常处理和错误检查,因此在实际使用时需要注意异常情况的处理。

完整代码

# 发送请求的模块
import requests
# 解析html代码的工具 lxml    pip install lxml
from lxml import etree 
import os
from time import sleep
# 伪装自己
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'}

hero_list_url = 'https://pvp.qq.com/web201605/js/herolist.json'
hero_list_resp = requests.get(hero_list_url,headers=headers)
# print(hero_list_resp.json())
for h in hero_list_resp.json():
    ename = h.get('ename')
    cname = h.get('cname')
    if not os.path.exists(cname):
        os.makedirs(cname)
    # 访问英雄主页
    hero_info_url = f'https://pvp.qq.com/web201605/herodetail/{ename}.shtml'
    hero_info_resp = requests.get(hero_info_url,headers=headers)
    hero_info_resp.encoding='gbk'
    e = etree.HTML(hero_info_resp.text)
    names = e.xpath('//ul[@class="pic-pf-list pic-pf-list3"]/@data-imgname')[0]
    names = [name[0:name.index('&')] for name in names.split('|')]
    # 发送请求 
    for i,n in enumerate(names):
        resp = requests.get(f'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{i+1}.jpg',headers =headers)
        # 接收服务器响应的图片(皮肤)
        # 保存图片(皮肤)
        with open(f'{cname}/{n}.jpg','wb') as f:
            f.write(resp.content)
        print(f'已下载:{n} 的皮肤')
        sleep(1)

总结

彩云之上,书香盈袖,笔札流转之间,Cloud Studio盛世华章。曾经的烦忧与担忧,在这片纯净的编程天地里荡然无存。
Cloud Studio,我所爱。它是一片广袤的海洋,容纳着我们每一个创作者的梦想。在这里,我们可以聆听到最美妙的代码乐章,在协作套件的映衬下,犹如一群融洽无间的琴手,紧密合作,共创辉煌。控制台恍若一面明镜,反射出我们心中的梦想,简约而不简单,宛如光芒万丈的指路明灯,为我们打造了一个能够自由创作的良好环境。
在这片云端阁楼,我们的劳动成果永远不会因为时间而销声匿迹。持久化的高超技巧,让我们的代码和创作永久保存下来,没有断电未存的忧虑,也不必担心存储空间的限制。能够随意地弹性扩容,更是让我们大踏步前行,挥洒着自己的编程精髓。
Cloud Studio还是一个拥有多种框架的云端部署套件。只需一键部署就能将我们的代码框架部署到云函数上,不再需要自己手动进行复杂的配置,让我们的代码乘风破浪,展翅高飞。
这个场所不同于传统的IDE软件,它不需要下载安装,只需随时随地点开写作平台即可,云端服务给人们带来更为丰富的编程体验。还有众多插件可供使用,如果默认配置无法满足你的需求,随时在线安装插件,扩充自己的使用体验。
自定义模板卓尔不群,可以将当前项目作为自定义模板,使得我们能够更加自由地创作,且这一自定义模板能够覆盖到Git仓库的项目、普通项目、示例项目等等。而且还可以内置Node.js、Java、Python等常用环境,以及连接云服务器自主配置,让我们更加红尘之中,行走在编程的路上。
Cloud Studio,是我们编程路上的一片绿洲。在这里,我们不再孤单,不再恐惧,充分发挥自己的才能和想象力,创造出属于我们自己的奇迹。

你可能感兴趣的:(studio,腾讯云,前端,javascript)