用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简单实现基数排序算法
May 16 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
opencv python 图像去噪的实现方法
Aug 31 Python
python爬取微信公众号文章
Aug 31 Python
详解Python发送email的三种方式
Oct 18 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python实现简单俄罗斯方块
Mar 13 Python
Python实现SMTP邮件发送
Jun 16 Python
详解anaconda离线安装pytorchGPU版
Sep 08 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
桌面中心(四)数据显示
2006/10/09 PHP
php session 错误
2009/05/21 PHP
PHP操作数组相关函数
2011/02/03 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python实现将元祖转换成数组的方法
2015/05/04 Python
python字典排序实例详解
2015/05/20 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
社团文化节邀请函
2014/01/10 职场文书
商场父亲节活动方案
2014/08/27 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
大学生个人学习总结
2015/02/15 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
python开发飞机大战游戏
2021/07/15 Python
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers