#导入相关库 import re import requests from bs4 import BeautifulSoup import os import urllib3 # 禁用 InsecureRequestWarning 警告,防止报错误 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# 建立保存路径 path = r'd:\王者荣耀壁纸' # 下载函数 def download(url, path, name, hero_name): hero_dir = os.path.join(path, hero_name) if not os.path.exists(hero_dir): os.makedirs(hero_dir) try: response = requests.get(url, verify=False) response.raise_for_status() #报错4xx——5xx时报错 with open(os.path.join(hero_dir, f"{name}.jpg"), "wb") as f: f.write(response.content) print(f"已下载 《{name}》 图片") except requests.RequestException as e: print(f"下载图片失败:{e}") # 单个英雄的所有皮肤图片URL、名字、编号 def get_single_hero_list(hero_id, hero_name, id_name): hero_url = f"https://pvp.qq.com/web201605/herodetail/{id_name}.shtml" try: response = requests.get(hero_url, verify=False) response.raise_for_status()#报错4xx——5xx时报错 response.encoding = "gbk" #转码 soup = BeautifulSoup(response.text, "html.parser") name_data = soup.find("ul", class_="pic-pf-list pic-pf-list3").get("data-imgname") name_list = re.sub(r'&\d+', '', name_data) # 使用r前缀修正正则表达式 hero_name_list = name_list.split("|") for num, name in enumerate(hero_name_list): #枚举法:数字和皮肤名字同时提取 num += 1 url = f"https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{hero_id}/{hero_id}-bigskin-{num}.jpg" download(url, path, name, hero_name) except requests.RequestException as e: print(f"获取英雄详情失败:{e}") except AttributeError as e: print(f"解析英雄详情页面失败:{e}") # 获取所有英雄目录 def get_main(): hero_list_url = "https://pvp.qq.com/web201605/js/herolist.json" try: response = requests.get(hero_list_url, verify=False) response.raise_for_status() #报错4xx——5xx时报错 heroes = response.json() for hero in heroes: hero_id = hero["ename"] hero_name = hero["cname"] id_name = hero.get("id_name", hero_id) # 如果没有"id_name",使用"ename" get_single_hero_list(hero_id, hero_name, id_name) except requests.RequestException as e: print(f"获取英雄列表失败:{e}") if __name__ == '__main__': get_main() print("下载完成")
#读取顺序为:
# 1 :if __name__ == '__main__':
# 2 :获取所有英雄目录
# 3 :单个英雄的所有皮肤图片URL、名字、编号
# 4 :下载函数
#该页面在下载好库后,在d盘下建立一个 王者荣耀壁纸 文件即可全部复制粘贴运用
提示!本文章仅供学习交流,严禁用于任何商业和非法用途,如有侵权,可联系本文作者删除!