python爬虫入门案例(爬取lol所有英雄名称及技能)

2023-11-10

滴滴滴,这几天忙着增强自己的实力,发现了一个非常适合新手的案例
案例就是爬取英雄联盟的所有英雄名称和技能,废话不多说,我们来分析分析
要练手的链接
进入此网站我们会发现,网页上的响应数据里面并没有我们想要的数据,由此我们可以猜测,该响应的数据格式为json数据
在这里插入图片描述
猜测是json数据格式的相应内容,我们可以进入xhr中寻找我们想要的数据包
我们会发现,里面有一个叫hero数据包,里面有我们想要的数据

在这里插入图片描述
然后我们来分析获取单个英雄的技能数据,同样的这个数据包也是json格式的

在这里插入图片描述
我们分析会发现我们需要上个json数据中的heroId并传给第二个json数据的网址中,就能得到相应的英雄技能,分析完毕代码如下:

"""
网址:https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js
目标:获取所有英雄的名称和技能名
数据结构:json
数据请求方式:ajax
"""
import requests

url  = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'

headers_ = {
'Referer': 'https://lol.qq.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36',
}

response = requests.get(url=url,headers=headers_).json()
# print(response)
json_data = response['hero']
for j in json_data:
    heroId= j['heroId']
    hero_name = j['name']
    # print(hero_name)
    detail_url = f'https://game.gtimg.cn/images/lol/act/img/js/hero/{heroId}.js'
    skill_response = requests.get(url=detail_url,headers=headers_).json()
    # print(skill_response['spells'])
    skills_list = skill_response['spells']
    ls_=[]
    for skill in skills_list:
        # print(skill['name'])
        skills = skill['name']
        ls_.append(skills)
    print("英雄名:",hero_name,"技能:",ls_)

不懂的可以私信博主哦,一起努力一起进步

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬虫入门案例(爬取lol所有英雄名称及技能) 的相关文章

随机推荐

  • 软件版本号命名

    这里收集一篇软件版本命名规范 百度找的 在此就借用了 1 1 版本命名规范 软件版本号有四部分组成 第一部分为主版本号 第二部分为次版本号 第三部分为修订版 本号 第四部分为日期版本号加希腊字母版本号 希腊字母版本号共有五种 分别为base
  • Sublime text 3 如何格式化html/CSS/JS代码

    使用Sublime text 3 编写代码是一种享受 使用Sublime text 3 格式化代码插件也是一种享受 具体安装步骤如下 HTML CSS JS Prettify是一款集成了格式化 美化 html css js三种文件类型的插件
  • JUC之实现Callable接口

    public class callable public static void main String args throws ExecutionException InterruptedException FutureTask ft n
  • C# 学习教程九

    C 集合类 集合 collection 提供了一种结构化组织任意对象的方式 而且我们早就知道集合在日常编程工作中的重要性 NET类库提供了丰富的集合数据类型 其种类之繁多甚至使许多人看得眼都花了 这些集合对象都具有各自的专用场合 不管怎么说
  • C语言中float值的比较

    预测以下C程序的输出 include
  • NSGAIII求极值点、超平面方程和截点的方法(用于标准化)

    NSGAIII求极值点 超平面方程和截点的方法 用于标准化 1 标准化的目的 由于测试问题不同目标的量纲或者范围不同 若直接进行运算 则量纲大的值会覆盖掉小的值 因此需要进行标准化 2 极值点 extreme point 在一些文章中 提到
  • 结构体内重载小于号< 及构造函数

    struct Node int d e bool operator lt const Node x const return x d lt d Node int d int e d d e e
  • Zookeeper集群节点数量为什么要是奇数个?

    无论是公司的生产环境 还是自己搭建的测试环境 Zookeeper集群的节点个数都是奇数个 至于为什么要是奇数个 以前只是模糊的知道是为了满足选举需要 并不知道详细的原因 最近重点学习zookeeper 了解到其中的原理 现将其整理记录下来
  • Kafka为何要设计缓冲池机制?初看一脸懵逼,看懂直接跪下!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 Kafka的客户端缓冲机制 2 内存缓冲造成的频繁GC问题 3 Kafka设计者实现的缓冲池机制 4 总结一下 这篇文章 同样给大家聊一个硬核的技术知识 我
  • 疑难杂症之malloc死锁__lll_lock_wait_private

    查看glibc源码可知 malloc内部是有锁的 那说明malloc是一个线程安全型函数 但是它不是一个可重入函数 重入的意思是 比如当前线程正在做malloc 如果此时因为某种原因触发了信号 那么操作系统会保存好现场 正在执行的mallo
  • 网维无盘服务器错误代码,因客户机网关地址写错导致无盘客户机开机获取到dhcp后卡在tftp前无法启动...

    问题现象 客户机启动后获取DHCP界面卡住 DHCP信息中缺少网关 如下图 原因说明 无盘服务端设置的网关地址错误 解决方案 修改为正确的网关地址 问题分析 1 按照过去的经验 出现这种问题一般都是arp绑定错误导致 或者tftp69端口占
  • 医学知识-FFR(冠状动脉血流储备分数)

    什么是FFR 冠状动脉血流储备分数 FFR 作为一项创功能学评价指标 对冠心病的治疗策略具有重要指导意义 前期研究证实FFR指导介入治疗策略不仅安全 经济 并能改善患者的预后 冠状动脉造影及血管内超声均被认为是诊断冠心病的 金标准 但它们只
  • 拥抱开放|OpenPie引领PostgreSQL中国代码贡献力

    OpenPie拥抱开放 和PostgreSQL社区互为兄弟社区 PostgreSQL作为世界上最受欢迎的开源数据库之一 起源于加利福尼亚大学伯克利分校 其卓越的性能倍受广大数据库用户的赞誉 OpenPie一直活跃于PostgreSQL社区
  • pytorch LayerNorm参数详解,计算过程

    目录 说明 LayerNorm参数 normalized shape eps elementwise affine LayerNorm前向传播 以normalized shape为一个int举例 总结 说明 LayerNorm中不会像Bat
  • npm的.npmrc文件在哪里?缓存及全局包文件在什么位置?

    npm的 npmrc文件在哪里 缓存及全局包文件在什么位置 npm作为node开发过程中的必备工具 长期使用之后 您可能会想 这些全局安装的node包都放在硬盘里面的哪个地方 配置文件 npmrc文件在哪里 node包的缓存位置在哪里 本文
  • Ubuntu和windows系统下安装odoo15 企业版终于安装成功了附带安装方法

    方法和社区版一样 用官方方法 轻松简单 界面清爽多了 比社区版 和14的企业版 比起来 效率高了很多 很多细节上的改变 网站模板多了 还有多了视频会议功能 安装方法 先安装数据库 sudo apt install postgresql y
  • Windows------openvino 2022.1安装步骤

    openvino安装 1 下载安装包 官网链接 https www intel com content www us en developer tools openvino toolkit download html 点击download
  • C#泛型方法的定义及使用

    在 C 语言中泛型方法是指通过泛型来约束方法中的参数类型 也可以理解为对数据类型设置了参数 如果没有泛型 每次方法中的参数类型都是固定的 不能随意更改 在使用泛型后 方法中的数据类型则有指定的泛型来约束 即可以根据提供的泛型来传递不同类型的
  • [疯狂Java]AWT:菜单栏、菜单、菜单项、菜单事件处理

    1 菜单栏 菜单 菜单项之间的关系 1 菜单栏 MenuBar 就是窗口中常见的顶层菜单栏 包含文件 编辑 格式等等子菜单的菜单条 即包含菜单的容器 2 菜单 Menu 是必定包含菜单项或者菜单 嵌套包含菜单 也叫子菜单 的容器 3 菜单项
  • python爬虫入门案例(爬取lol所有英雄名称及技能)

    滴滴滴 这几天忙着增强自己的实力 发现了一个非常适合新手的案例 案例就是爬取英雄联盟的所有英雄名称和技能 废话不多说 我们来分析分析 要练手的链接 进入此网站我们会发现 网页上的响应数据里面并没有我们想要的数据 由此我们可以猜测 该响应的数
Powered by Hwhale