用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 相关文章推荐
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
python求解水仙花数的方法
May 11 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
Python读取txt某几列绘图的方法
Oct 14 Python
Python给图像添加噪声具体操作
Mar 03 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
python实现接口并发测试脚本
Jun 25 Python
python logging通过json文件配置的步骤
Apr 27 Python
python def 定义函数,调用函数方式
Jun 02 Python
python 实现aes256加密
Nov 27 Python
Jupyter Notebook 远程访问配置详解
Jan 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的引用详解
2015/02/22 PHP
golang与PHP输出excel示例
2016/07/22 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
python创建临时文件夹的方法
2015/07/06 Python
Python的Django框架中的Context使用
2015/07/15 Python
简单了解python关系(比较)运算符
2019/07/08 Python
Python实现仿射密码的思路详解
2020/04/23 Python
详解python对象之间的交互
2020/09/29 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
解除劳动合同证明书
2014/09/26 职场文书
买卖合同协议书范本
2014/10/18 职场文书
八达岭长城导游词
2015/01/30 职场文书
少先队工作总结2015
2015/05/13 职场文书
小学总务工作总结
2015/08/13 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js