用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中使用HTML模版的教程
Apr 29 Python
python导入时小括号大作用
Jan 10 Python
Python实现的单向循环链表功能示例
Nov 10 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
Django给admin添加Action的步骤详解
May 01 Python
在Python中append以及extend返回None的例子
Jul 20 Python
Django实现基于类的分页功能
Oct 31 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
python 将Excel转Word的示例
Mar 02 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
Python 数据可视化之Matplotlib详解
Nov 02 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与SQL注入攻击[一]
2007/04/17 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
js实现简单扫雷
2020/11/27 Javascript
python分割列表(list)的方法示例
2017/05/07 Python
Django发送邮件功能实例详解
2019/09/02 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
给分销商的致歉信
2014/01/14 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
工作证明英文模板
2014/10/21 职场文书
2014年校长工作总结
2014/12/11 职场文书
公务员个人总结
2015/02/12 职场文书
休学证明范本
2015/06/19 职场文书
六五普法学习心得体会
2016/01/21 职场文书
导游词之长城八达岭
2019/09/24 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL