用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解释执行原理分析
Aug 22 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python机器人行走步数问题的解决
Jan 29 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
使用python实现离散时间傅里叶变换的方法
Sep 02 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
用Python绘制漫步图实例讲解
Feb 26 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
jquery 手势密码插件
2017/03/17 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
微信小程序使用Socket的实例
2017/09/19 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
OpenLayers3实现图层控件功能
2020/09/25 Javascript
python关键字and和or用法实例
2015/05/28 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
PyQt5显示GIF图片的方法
2019/06/17 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
基于python plotly交互式图表大全
2019/12/07 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
数控技术应届生求职信
2013/11/13 职场文书
电子商务应届生求职信
2013/11/16 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang