Python-下载英雄皮肤
时间:2020-05-20
本文章向大家介绍Python-下载英雄皮肤,主要包括Python-下载英雄皮肤使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
def hero_skin(): import json import os import requests from bs4 import BeautifulSoup headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'} hero_prefix = 'https://pvp.qq.com/web201605/herodetail/' skin_prefix = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' def get_heroes(): data_url = 'https://pvp.qq.com/web201605/js/herolist.json' r = requests.get(data_url, headers) return json.loads(r.text) def process_hero(hero): hero_id = str(hero['ename']) hero_name = hero['cname'] hero_path = os.path.join("皮肤", hero_name) if not os.path.isdir(hero_path): os.mkdir(hero_path) hero_url = hero_prefix + hero_id + '.shtml' r = requests.get(hero_url, headers).text text = r.text.encode('iso-8859-1').decode('gbk') soup = BeautifulSoup(text, 'lxml') skins = soup.select('ul.pic-pf-list.pic-pf-list3')[0].get('data-imgname').split('|') for i in range(len(skins)): # 页面信息是动态加载出来得,不能直接提取,需要拼装(下载大图) img_url = skin_prefix + hero_id + '/' + hero_id + '-bigskin-' + str(i + 1) + '.jpg' r = requests.get(img_url, headers) with open(hero_path + '/' + skins[i] + '.jpg', 'wb+') as f: f.write(r.content) print(hero_name + '有' + str(len(skins)) + '张皮肤') for hero in get_heroes(): process_hero(hero) hero_skin()
原文地址:https://www.cnblogs.com/zhouzetian/p/12923360.html
- Linq基础知识小记四之操作EF
- 仿大总点评浮动效果
- Linq to xml API中 XName 的奇怪实现
- Vue.js系列之一初识Vue
- EF 数据库连接约定(Connection String Conventions in Code First)
- 微信小程序使用WebSokcet实现相关请求
- Vue.js系列之二Vue实例
- autoload自动加载机制使用
- EF 约定介绍
- 关于EF Code First模式不同建模方式对建表产生的影响
- C# 命名空间和程序集
- C# new关键字和对象类型转换(双括号、is操作符、as操作符)
- 防止小程序多次点击跳转解决方案
- 详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- DB2 Linux平台安装 Part 2 单机版软件安装
- DB2 Linux平台安装 Part 3 实例的建立与配置
- C++核心准则Con.2:默认情况下,将成员函数定义为const类型
- C++核心准则Con.3:默认情况下,传递参照常量的指针或引用
- C++核心准则Con.4:如果一个对象在构建之后值不会改变,使用const定义它
- C++核心准则Con.5:对于可以在编译时计算的值,使用constexpr进行声明
- DB2 Linux平台安装 Part 4 创建数据库
- VBA编写Ribbon Custom UI编辑器03——认识Ribbon的xml
- VBA编写Ribbon Custom UI编辑器04——解析xml
- VBA编写Ribbon Custom UI编辑器05——转换结构体XML
- MySQL 8.0.19 Linux平台安装 Part 1
- MySQL 8.0.19 Linux平台安装 Part 2
- 使用XtraBackup备份MySQL 8.0 Part 1 xtrabackup 8.0 安装
- 10个解放双手的 IDEA 插件,少些冤枉代码!
- 二叉树的 4 种遍历方式,你会多少?