用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码


Posted in Python onJuly 13, 2020

实现思路:分为两部分,第一部分,获取网页上数据并使用xlwt生成excel(当然你也可以选择保存到数据库),第二部分获取网页数据使用IO流将图片保存到本地

一、爬取所有英雄属性并生成excel

1.代码

import json

import requests
import xlwt

# 设置头部信息,防止被检测出是爬虫
headers = {
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
response = requests.get(url=url, headers=headers).text
loads = json.loads(response)
dic = loads['hero']
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding='utf-8')
# 创建一个worksheet
worksheet = workbook.add_sheet('LOL')
try:
 for i in range(len(dic)):
  # 设置单元格宽度大小
  worksheet.col(i).width = 4000
  # 设置单元格高度大小
  style = xlwt.easyxf('font:height 300')
  worksheet.row(i).set_style(style)
  # 第一行用于写入表头
  if i == 0:
   worksheet.write(i, 0, '编号')
   worksheet.write(i, 1, '名称')
   worksheet.write(i, 2, '英文名')
   worksheet.write(i, 3, '中文名')
   worksheet.write(i, 4, '角色')
   worksheet.write(i, 5, '物攻')
   worksheet.write(i, 6, '物防')
   worksheet.write(i, 7, '魔攻')
   worksheet.write(i, 8, '魔防')
   continue
  worksheet.write(i, 0, dic[i - 1]['heroId'])
  worksheet.write(i, 1, dic[i - 1]['name'])
  worksheet.write(i, 2, dic[i - 1]['alias'])
  worksheet.write(i, 3, dic[i - 1]['title'])
  roles_ = dic[i - 1]['roles']
  roles = []
  for data in roles_:
   if 'mage' == data:
    roles.append('法师')
   if 'tank' == data:
    roles.append('坦克')
   if 'fighter' == data:
    roles.append('战士')
   if 'marksman' == data:
    roles.append('ADC')
   if 'assassin' == data:
    roles.append('刺客')
   if 'support' == data:
    roles.append('辅助')
  worksheet.write(i, 4, str(roles))
  worksheet.write(i, 5, dic[i - 1]['attack'])
  worksheet.write(i, 6, dic[i - 1]['defense'])
  worksheet.write(i, 7, dic[i - 1]['magic'])
  worksheet.write(i, 8, dic[i - 1]['difficulty'])
  # 保存
 workbook.save('C:\\Users\\Jonsson\\Desktop\\lol.xls')
except Exception as e:
 print(e)

2.效果

用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

二、爬取所有英雄皮肤并保存到本地

1.代码

import json
import os

import requests
import xlwt

# 设置头部信息,防止被检测出是爬虫
headers = {
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js"
# 请求英雄列表的url地址
response = requests.get(url=url, headers=headers).text
loads = json.loads(response)
dic = loads['hero']
for data in dic:
 id_ = data['heroId']
 skinUrl = 'https://game.gtimg.cn/images/lol/act/img/js/hero/%s.js' % id_
 # 请求每个英雄皮肤的url地址
 skinResponse = requests.get(url=skinUrl, headers=headers).text
 json_loads = json.loads(skinResponse)
 hero_ = json_loads['hero']
 save_path = './skin/%s-%s-%s' % (hero_["heroId"], hero_['name'], hero_['title'])
 # 文件夹不存在,则创建文件夹
 folder = os.path.exists(save_path)
 if not folder:
  os.makedirs(save_path)
 skins_ = json_loads['skins']
 for data in skins_:
  if data['chromas'] == '0':
   content = requests.get(url=data['mainImg'], headers=headers).content
   try:
    with open('%s/%s.jpg' % (save_path, data['name']), "wb") as f:
     print("正在下载英雄:%s 皮肤名称:%s ..." % (hero_['name'], data['name']))
     f.write(content)
   except Exception as e:
    print('下载失败')
    print(e)

2.效果

用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

到此这篇关于用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码的文章就介绍到这了,更多相关Python爬取LOL所有英雄内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的几个常用排序算法实例
Jun 16 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
python基础教程之匿名函数lambda
Jan 17 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
python检测IP地址变化并触发事件
Dec 26 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
Python3.8中使用f-strings调试
May 22 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
基于pycharm实现批量修改变量名
Jun 02 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
python--shutil移动文件到另一个路径的操作
Jul 13 #Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 #Python
python 安装移动复制第三方库操作
Jul 13 #Python
基于Python爬取fofa网页端数据过程解析
Jul 13 #Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 #Python
python 制作python包,封装成可用模块教程
Jul 13 #Python
通过Python实现Payload分离免杀过程详解
Jul 13 #Python
You might like
Zend Framework页面缓存实例
2014/06/25 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python操作gmail实例
2015/01/14 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
财务部绩效考核方案
2014/05/04 职场文书
村居抓节水倡议书
2014/05/19 职场文书
社区志愿者活动总结
2014/06/26 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
陕西导游词
2015/02/04 职场文书
生日祝酒词大全
2015/08/10 职场文书