您的位置 首页 > 体育运动

【球员资料卡文档】一学就会一用不废系列:如何用Python获取NBA历史数据

# python # # NBA明星##NBA#

#百分#

启动Python后不知道该怎么用。这篇文章将利用Python迅速获得大量数据。

处理目标:用Python获取NBA历史得分排名前500的历史球星及得分数据。

前期准备:电脑安装Python,Pycharm软件(其他类似可视化处理界面,方便编程)

目标网站:(一个非常全面的NBA数据记录网站)

准备完成后,下面就开始我们的数据获取工作:首先,第一步泡一壶茶,或者倒一杯咖啡(非必要步骤[狗头]),废话不说,言归正传,正式开始处理步骤。

首先,打开pycharm,新建项目,写好项目名称地址等基本信息。

本次数据获取过程中需要使用requests模块、网页文本解析模块etree、csv模块。所以在脚本文件中加入所需的模块。

依赖模块

pycharm构建的项目只提供了基础的模块内容,所以我们还需要在设置-设置-Python解析器中导入我们所需要的模块。

导入依赖模块

然后通过浏览器打开我们的目标网址:query.php?page=0&QueryType=all&AllType=season&AT=tot&crtcol=pts&order=1#label_show_result

目标网址

网址信息中我们主要用到的信息主要是page信息,用来标识目标网址的页数。设置好页数之后,右键点击检查查看目标网页的原始代码。找到姓名节点及分数节点。

姓名节点及得分节点信息

在完成以上准备后,在脚本文件中编辑reque请求,主要包括url及请求的hearder信息。在url中定义一个用来控制当前页码的变量currentPage,自动获取时用来控制数据获取数量。

url请求

请求后的本档解析使用e函数。

网页解析

再次回到解析的网页,分析发现用来控制表格数据的节点采用类来控制,例如:姓名所属的类为"normal player_name_out change_color col1 row*",得分所在的类为"current pts change_color col22 row *'",同时通过row的标号来标识排名编号,每页默认为20行(0-19)。

节点信息

所以再次回到脚本文件,设置解析的表达式对数据进行解析,通过currentRow变量来存储当前排名位置。

数据解析

最后,通过while加for循环的方式批量下载数据,并保存为csv文档。

while-for

完成之后就可以随意处理数据了。[狗头][狗头]

NBA得分排名前10


文/挽风行

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐