用Python爬虫获取NBA球员的生涯数据

2023-05-16

NBA球迷往往对球员的各项数据以及对应的排名很感兴趣,而basketball-reference.com这个网站的数据十分详尽。为方便浏览,我在github建了一个项目,借助该网站提供的数据来汇总某个球员的最新生涯数据,项目链接在此。本文介绍一下思路和使用方法。

思路

思路非常简单,首先使用requests库来抓取相关的网页,之后用beautifulsoup这个库来解析html文件,用以解析所需的数据。

Windows可执行程序的使用

首先从这里下载压缩包,解压后得到nbarecord.exe这个可执行文件。之后在Windows命令行中执行该文件,并将球员名字作为参数,就可以得到对应的各项统计数据。假设该可执行文件存储在E盘,若想获取詹姆斯的各项统计,可以执行如下命令获取:

PS C:\Users\lxb> cd e:
PS E:\> .\nbarecord.exe "LeBron James"
Retrieving data from: http://www.basketball-reference.com/leaders/pts_career.html...
<Response [200]>
Retrieving data from: http://www.basketball-reference.com/leaders/trb_career.html...
<Response [200]>
Retrieving data from: http://www.basketball-reference.com/leaders/blk_career.html...
<Response [200]>
Retrieving data from: http://www.basketball-reference.com/leaders/ast_career.html...
<Response [200]>
Retrieving data from: http://www.basketball-reference.com/leaders/stl_career.html...
<Response [200]>
Retrieving data from: http://www.basketball-reference.com/leaders/fg3_career.html...
<Response [200]>
Points(得分):
1.         Kareem Abdul-Jabbar         38387
2.         Karl Malone                 36928
3.         Kobe Bryant                 33643
4.         Michael Jordan              32292
5.         Wilt Chamberlain            31419
6.         Dirk Nowitzki               29797
7.         Shaquille O'Neal            28596
8.         LeBron James                27988
-----------------Last Time------------------
8.         LeBron James                27988
--------------------------------------------
Rebounds(篮板):
64.        Chris Webber                 8124
65.        Lamar Odom                   8059
66.        Bob McAdoo                   8048
67.        Larry Foust                  8041
68.        Happy Hairston               8019
69.        John Havlicek                8007
70.        Oscar Robertson              7804
71.        Sam Perkins                  7666
72.        Caldwell Jones               7663
73.        Antonio McDyess              7638
74.        Clyde Lee                    7626
75.        Chris Bosh                   7592
76.        Wayne Embry                  7544
77.        Maurice Lucas                7520
78.        Paul Pierce                  7497
79.        Scottie Pippen               7494
80.        James Donaldson              7492
81.        Al Jefferson                 7477
82.        Juwan Howard                 7428
           LeBron James                 7428
-----------------Last Time------------------
           LeBron James                 7428
--------------------------------------------
Blocks(封盖):
112.       Roy Hinson                    882
113.       Rony Seikaly                  872
114.       Joe Smith                     868
115.       James Edwards                 867
116.       Kenyon Martin                 864
117.       Paul Millsap                  853
118.       Dave Corzine                  848
           Donyell Marshall              848
120.       Kurt Thomas                   841
121.       Danny Schayes                 840
           Joakim Noah                   840
123.       Joel Przybilla                836
124.       Alex English                  833
125.       Marvin Webster                829
126.       Joe Meriweather               810
127.       Alvan Adams                   808
128.       Tracy McGrady                 807
129.       Jerome Kersey                 799
130.       Vin Baker                     798
131.       LeBron James                  797
-----------------Last Time------------------
131.       LeBron James                  797
--------------------------------------------
Assists(助攻):
1.         John Stockton               15806
2.         Jason Kidd                  12091
3.         Steve Nash                  10335
4.         Mark Jackson                10334
5.         Magic Johnson               10141
6.         Oscar Robertson              9887
7.         Isiah Thomas                 9061
8.         Gary Payton                  8966
9.         Andre Miller                 8524
10.        Chris Paul                   8037
11.        Rod Strickland               7987
12.        Maurice Cheeks               7392
13.        Lenny Wilkens                7211
14.        LeBron James                 7200
-----------------Last Time------------------
14.        LeBron James                 7200
--------------------------------------------
Steals(抢断):
2.         Jason Kidd                   2684
3.         Michael Jordan               2514
4.         Gary Payton                  2445
5.         Maurice Cheeks               2310
6.         Scottie Pippen               2307
7.         Clyde Drexler                2207
8.         Hakeem Olajuwon              2162
9.         Alvin Robertson              2112
10.        Karl Malone                  2085
11.        Mookie Blaylock              2075
12.        Allen Iverson                1983
13.        Derek Harper                 1957
14.        Kobe Bryant                  1944
15.        Chris Paul                   1873
16.        Isiah Thomas                 1861
17.        Kevin Garnett                1859
18.        Shawn Marion                 1759
19.        Paul Pierce                  1751
20.        Magic Johnson                1724
21.        LeBron James                 1723
-----------------Last Time------------------
21.        LeBron James                 1723
--------------------------------------------
3-pt Field Goals(三分命中数):
8.         Kyle Korver                  1978
9.         Joe Johnson                  1886
10.        Chauncey Billups             1830
11.        Kobe Bryant                  1827
12.        Stephen Curry                1795
13.        Rashard Lewis                1787
14.        Peja Stojakovic              1760
15.        Dirk Nowitzki                1736
16.        J.R. Smith                   1729
17.        Dale Ellis                   1719
18.        Steve Nash                   1685
19.        Jason Richardson             1608
20.        Mike Miller                  1586
21.        Glen Rice                    1559
22.        Eddie Jones                  1546
23.        Tim Hardaway                 1542
24.        Nick Van Exel                1528
25.        Mike Bibby                   1517
26.        Michael Finley               1454
27.        LeBron James                 1415
-----------------Last Time------------------
27.        LeBron James                 1415
--------------------------------------------

程序运行时,会从网站爬取最新的数据,显示球员当前所获得的成就,并显示他最近需要超越的一些球员(最多显示之前20个球员)。**Last Time **这一栏显示上一次执行程序获取的该球员相应数据,这样一来可以了解到球员在最近的比赛后取得的进展。
注意:球员名字需要按照basketball-reference.com这个网站提供的资料来作为输入。

通过Python环境运行

首先clone一份代码:

git clone https://github.com/schnauzers/predict.git

本项目用Python3编写,因此你需要一个Python3环境(或者用pyenv虚拟)。
请安装如下几个依赖库:

pip install requests bs4 lxml colorama

之后将球员名字作为参数来执行脚本,便可获取相应的数据:

python getrecord.py "LeBron James"

Linux下通过邮件自动通知数据更新

如果拥有一个Linux环境,则可以通过crontabmail等工具,利用Linux管道,结合本程序,每天获取关注球员的最新数据,并将数据发送到自己的邮箱。实现也很简单,举例如下:
首先通过crontab -e命令,打开编辑窗口,之后在编辑器里输入如下内容(请自行修改代码路径和自己的邮箱地址):

0 20 * * * python3 /home/predict/getpage.py "LeBron James" | mail -s "Data of LeBron today" YourEmail@domain.cc

这样便可以在每天晚上20:00收到关于詹姆斯最新的生涯数据了(注意在自己邮箱里设置白名单,防止被当做垃圾邮件)。

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

用Python爬虫获取NBA球员的生涯数据 的相关文章

  • Centos7 设置开机自启的几种方式

    一 系统服务的方式 1 前提 xff08 1 xff09 首先要将需要自启的软件或应用注册成系统服务 xff0c 下面提供常用的软件注册系统服务的案例 nginx service 创建服务文件 vi usr lib systemd syst
  • ubuntu18.04 server配置 ip地址

    ubuntu18 04 server xff0c 启用了新的网络工具netplan xff0c 下面对齐配置参数进行介绍 1 其网络配置文件是放在 etc netplan yaml 缺省dhcp打开方式 xff0c 如果要配置静态地址 xf
  • Ardupilot基于UWB的定位飞行测试

    拖了许久的测试视频 xff0c 终于要发布了 xff0c 上个版本的代码有点问题 xff0c 没有考虑清楚UWB和NED坐标系的关系 xff0c 导致后面飞行故障不断 xff0c 这款UWB的坐标系为ENU坐标系 xff0c 飞机飞行的坐标
  • AutoBoat自动导航无人船

    AutoBoat 自动导航支持航线规划无人船 AutoBoat是一款功能强大自动驾驶无人船 xff0c 同时还可以搭配多款地面控制站使用 地面站中可以在线升级固件 调参 xff0c 使用一套全双工的无线数据传输系统在地面站与小车之间建立起一
  • PIXHAWK上安装PX4Flow光流传感器及调试过程

    小编最近刚调试完光流传感器 xff0c 效果非常理想 xff0c 无GPS情况下很稳定 小编把调试过程的过程和遇到的问题分享给大家 xff0c 希望大家少走弯路 在安装和调试光流传感器之前 xff0c 先保证旋翼机已经安装和调试完毕 xff
  • 正点原子STM32学习笔记——MPU6050介绍

    一 MPU6050简介 1 什么是MPU6050 xff1f MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件 xff0c 内带3轴陀螺仪和3轴加速度传感器 xff0c 并且含有一个第二IIC接口 xff0c 可
  • 【OFDM系列4】OFDM信号多径信道模型基础知识

    多径信道模型 Multipath Channel Scenario 信道脉冲响应 Channel Impulse Response CIR 信道的复基带脉冲响应如下所示 h t l 1 L a l
  • LACP负载分担配置

    网络拓扑图如下 交换机3的配置 Huawei int Eth Trunk 1 Huawei Eth Trunk1 mode lacp static xff08 负载分担模式设置为LACP模式 xff09 Huawei Eth Trunk1
  • 在 NVIDIA jetson tx2 上基于 realsense d435i 相机运行 vins 相关配置

    在 NVIDIA jetson tx2 上基于 realsense d435i 相机运行 vins 相关配置 一 tx2刷机二 安装librealsense xff0c realsense驱动1 安装依赖库2 从debian reposit
  • linux串口传感器处理接收不完整,数据丢失问题分析

    简介 因为当前项目需要在一个linux系统下进行串口传感器的收发工作 xff0c 该串口传感器的收发使用的是字节流专有协议 xff0c 按照每一个字节的十六进制编码来确定协议数据 按照以往的思路 xff0c 串口就是最简单的外设的思想 xf
  • STM32与上位机串口通讯的学习笔记(简明的数据帧设计方法)

    最近因为项目需要 xff0c 需要做一个STM32和Windows的串口通讯协议来交换数据 xff0c 本着追求极致的心态 xff0c 来讨论一下简明的数据帧的设计方法 数据的传输方式 对于很多单片机初学者而言 xff0c 可能他们接触到串
  • 通讯协议(modbus协议和serial读取数据)

    通讯协议 1 调试助手1 1 crc计算助手1 2 串口调试助手 2 使用serial节点读取数据3 modbus协议3 1 报文3 2 功能号3 2 1主机对从机写数据操作3 2 2主机对从机读数据操作 3 3 MODBUS报文模型 4
  • Qt5开发(一)使用记录

    Qt使用记录 一 QtCreator 快捷使用方式1 快速切换已打开的文件2 快速添加函数3 修改变量名 并应用到所有使用该变量的地方 4 选中光标所在的单词5 删除光标所在行6 其他快捷键7 QtCreator配置代码自动格式化8 快捷键
  • Windows10系统运行msconfig(系统配置)选择安全引导后,登录账户显示密码错误的一种较为简易的解决方法

    问题背景描述 在Windows10环境下 xff0c 由于前几天下载到一个带有极多捆绑软件的文件 xff08 常在河边走 xff0c 哪有不湿鞋 xff09 xff0c 为了删除一个流氓软件 xff0c 于是根据网上文章提示便运行 msco
  • 学习笔记-MATLAB的函数bwconncomp算法解析

    一 说明 bwconncomp函数的作用是在一个二值图像中找出每一个连通分量 xff0c 并返回一个结构体CC xff0c CC中包含了图像及连通分量的一些属性 笔者使用的MATLAB版本为2018a xff0c 且在该版本中 xff0c
  • PX环境搭建编译px4_fmu-v2_default相关问题的解决方法

    背景说明 笔者在ubuntu18 04下搭建PX环境时git clone的是较新版本的PX4 Autopilot链接在此 xff08 而目前网上的教程基本是较老版本的Firmware xff0c 两者文件分布不相同 xff0c 所以已有的方
  • PX4编译过程中报错通用解决办法

    背景说明 时刻两年 xff0c 再次配置PX4环境 xff0c 又踩了一遍坑 xff0c 过程中遇到报错真的是欲哭无泪 xff0c 但是解决完回头再来看其实问题并不复杂 本篇文章面向在PX4 Autopilot目录执行命令 make px4
  • CMakeList使用总结

    一 cmake功能介绍 cmake是跨平台编译工具 xff0c 编写简单好维护 xff0c 是make的高级用法 1 编写CMakeList txt文件 通过cmake生成Makefile文件 xff0c make生成可执行文件 静态库 共
  • Mavlink任务协议

    联系作者QQ 843230304 本文翻译自 https mavlink io en services mission html mission protocol Mavlink任务协议 任务子协议允许GCS或开发人员API 在无人机 组件
  • QGroundControl增加菜单栏新建窗口

    作者qq 843230304 欢迎交流分享 MainWindow h 这个函数创建内部DockWidget xff08 即小窗口 xff09 bool createInnerDockWidget const QString amp widg

随机推荐