以上就是抓取Ajax动态加载数据的全过程&#xff0c

admin 10 2024-02-13 14:00:12

  现在很多网站的数据都是通过Ajax动态加载的,我认为这恰恰降低了我们爬取的难度,因为我们无需考虑如何解析数据,只需要将json文件转换为字典形式,通过字典的键就可以取得我们所需要的数据。

爬取网站:NBA中文官网

用到的库:requests、json

思路:

分析页面找到保存有球员名字的json文件解析json文件获取球员名字获取保存球员数据的json文件解析json文件获取有用的数据将数据写入文件

步骤:

1:页面分析

  打开NBA中文官网 选择数据 球员数据

  在这里插入图片描述

  进入之后我们可以看到一个包含50个球员数据的页面

  点击一条进入详情页 选择数据选项卡

  在这里插入图片描述

  我们可以看到这名球员的详细数据,利拉德在最近五场比赛中的场均得分已经达到了第一。

  我们需要爬取的就是每名球员的职业生涯数据

  在这里插入图片描述

  我选择的是总数这个选项卡,因为平均选项卡中球员的场均得分、三分命中率等数据都已经统计出来了,后续我还会对这些数据进行清洗分析以及可视化,所以我没有爬他统计好的数据。

  找到保存数据的json文件,再说一遍 谷歌大法好 按F12打开开发者选项选择Network 和 XHR 选项卡

  在这里插入图片描述

  刷新页面

  在这里插入图片描述

  最后一个json文件保存的就是球员的数据

  点击这个json文件获取这个json文件的url

  在这里插入图片描述

  再打开另一个球员的json文件

  在这里插入图片描述

  我们可以发现这些url的规律,我们可以将球员的名字用一个变量代替从而实现循环抓取

  这就是为什么我们要先获取球员的名字的原因。

  同样的套路我们找到保存所有球员名字的json文件

  在这里插入图片描述

  接下来我们就可以写代码获取这些球员的数据了

2:获取球员名字

  定义一个方法获取json文件

  定义解析球员名字的方法

  不要问我怎么知道每个键的含义,你可以获取json文件后通过遍历他的键和值来找到他们之间的关系

  也可以通过pandas的read_json()方法你也能很快发现他们之间的关系。还有就是有一个json文件放的是每个键的意思不过比较难找0.0滑稽保命

  在这里插入图片描述

  在这里插入图片描述

  定义解析球员数据的方法

  保存数据

  完整代码

  运行结果

  在这里插入图片描述

  以上就是抓取Ajax动态加载数据的全过程,明后天我会继续写通过pandas或mapreduce+hive 对数据进行简单清洗和分析并将结果通过echarts图表的形式展示出来,如果有想看的同学可以继续关注!

  虽然湖人没进季后赛但我还是想说一句:湖人总冠军!

以上就是抓取Ajax动态加载数据的全过程,
上一篇:职业生涯场均26.2分5.4个篮板2.8次助攻
下一篇:特斯拉就可以实现其他车企做梦都想实现的一件事:高度自由的价格控制能力
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

返回顶部小火箭