用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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Python多进程同步简单实现代码
Apr 27 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
Python微信操控itchat的方法
May 31 Python
python实现二级登陆菜单及安装过程
Jun 21 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
关于windows下Tensorflow和pytorch安装教程
Feb 04 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 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
德劲1104的电路分析与改良
2021/03/01 无线电
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
php实现图片压缩处理
2020/09/09 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
js电话号码验证方法
2015/09/28 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
js编写简单的聊天室功能
2017/08/17 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python实现梯度下降法
2020/03/24 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
小学生成长感言
2014/01/30 职场文书
校园环保建议书
2014/05/14 职场文书
星级党支部申报材料
2014/05/31 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang
python计算列表元素与乘积详情
2022/08/05 Python