用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中截取字符函数strip,lstrip,rstrip
Jul 17 Python
深入浅析python定时杀进程
Jun 06 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Linux下python制作名片示例
Jul 20 Python
python实现二维数组的对角线遍历
Mar 02 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
Python处理PDF与CDF实例
Feb 26 Python
python多维数组分位数的求取方式
Mar 03 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 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操作数组相关函数
2011/02/03 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python 切片和range()用法说明
2013/03/24 Python
使用PDB模式调试Python程序介绍
2015/04/05 Python
python交互式图形编程实例(三)
2017/11/17 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python实现石头剪刀布程序
2021/01/20 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
给交警的表扬信
2014/01/12 职场文书
长城导游词400字
2015/01/30 职场文书
升学宴学生致辞
2015/07/27 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python