用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球员的生涯数据 的相关文章

  • 搭建linux服务器详细教程

    Linux服务器的部署 xff0c 配置 xff0c 搭建步骤 xff1a 1 准备 xff1a 1 1 jdk1 8 xff1a jdk 8u11 linux x64 tar gz tomcat xff1a apache tomcat 8
  • 使用Word2013写论文的时候,波浪号(~)一直在一行的上面,无法上下居中 的解决方案

    这里提供四种方法给大家 xff0c 不用谢 xff01 1 搜狗输入法 xff0c 直接打 blh xff0c 即可获得波浪号 xff08 这个方法大多数地方都可以用 xff0c 比如打摄氏度符号 xff08 xff09 的时候 xff09
  • centos7.4安装图形界面并远程桌面连接

    1 系统版本 CentOS release 6 2 Final 以下安装需要用root权限操作 2 安装x windows yum groupinstall y X Window System 注意有引号 3 安装图形界面软件 GNOME
  • linux服务器更改网络配置

    文章目录 前言一 更改vmware的虚拟网络配置二 修改window的网络配置三 修改虚拟机内部的配置四 映射 选做 修改hostname修改hosts修改windows的配置验证 前言 linux服务器更改网络配置 xff0c 是为让它的
  • FastBoot 刷机教程

    本篇文章主要介绍 Android 开发中的 FastBoot 部分知识点 xff0c 通过阅读本篇文章 xff0c 您将收获以下内容 一 Fastboot 简介 欢迎关注微信公众号 程序员Android 微信公众号 xff1a Progra
  • Google GMS Crash 优化方案

    极力推荐文章 xff1a 欢迎收藏 Android 干货分享 阅读五分钟 xff0c 每日十点 xff0c 和您一起终身学习 xff0c 这里是程序员Android GMS GoogleMobile Service 包是出口国外手机中 Go
  • FastBoot 刷机使用方法

    和你一起终身学习 xff0c 这里是程序员Android 经典好文推荐 xff0c 通过阅读本文 xff0c 您将收获以下知识点 一 Fastboot 简介 二 Fastboot 刷机准备 三 Fastboot 刷机命令 四 其他刷机工具
  • Android 系统奔溃触发WatchDog分析

    和你一起终身学习 xff0c 这里是程序员Android 经典好文推荐 xff0c 通过阅读本文 xff0c 您将收获以下知识点 一 前言 二 场景介绍 三 分析trace文件 一 前言 作为一个Android开发者 xff0c 不管是Ap
  • Android 人脸解锁源码剖析

    和你一起终身学习 xff0c 这里是程序员Android 经典好文推荐 xff0c 通过阅读本文 xff0c 您将收获以下知识点 一 人脸识别身份验证HIDL 二 人脸模块流程分析 三 人脸录入 四 人脸匹配 五 人脸解锁屏幕 一 人脸识别
  • Android 手机按键客制化详解

    在Android 中会有以下5个按键 xff08 Back Home Menu Power Volume xff09 与用户进行交互 xff0c Framework 层中实现按键功能 xff0c 因此 xff0c 从手机系统定制的角度 xf
  • 基python实现多线程网页爬虫

    一般来说 xff0c 使用线程有两种模式 一种是创建线程要执行的函数 把这个函数传递进Thread对象里 xff0c 让它来执行 另一种是直接从Thread继承 xff0c 创建一个新的class xff0c 把线程执行的代码放到这个新的c
  • 手机重启问题 Log 抓取方法

    极力推荐文章 xff1a 欢迎收藏 Android 干货分享 本篇文章主要介绍展讯平台手机开发中的部分重启问题知识点 xff0c 通过阅读本篇文章 xff0c 您将收获以下内容 一 User 版本 默认开启 sysdump 方法 二 插入S
  • CentOS7下普通账号通过systemctl管理服务需要输入root密码

    问题描述 xff1a 使用普通账号test通过systemctl启动系统服务提示需要输入root密码 xff1a 解决方案 xff1a 根据上面提示得知权限由polkit进行管理 xff0c 对应的是org freedesktop syst
  • VNC的安装使用和分辨率设置

    1 使用yum命令安装VNC server xff1a yum y install tigervnc server 若为离线环境则安装rpm包 rpm ivh tigervnc server 1 8 0 17 el7 x86 64 rpm
  • Linux如何搭建Java部署环境

    Java具有着跨平台的特性 xff0c 一次编写 xff0c 到处运行 xff0c 如 xff1a 将Java程序部署到Linux上也可以运行 xff0c 但是也是需要借助一些工具 xff0c 如 xff1a JDK xff0c MySql
  • 银河麒麟桌面系统启用 rc.local 设置开机启动方法

    银河麒麟系统不再使用initd管理系统 xff0c 改用systemd 然而systemd很难用 xff0c 改变太大 xff0c 跟之前的完全不同 使用systemd设置开机启动 xff0c 为了像以前一样 xff0c 在 etc rc
  • 记录一次RocketMq消费不均的解决方案

    背景 xff1a xxx课件系统有一个打包操作 xff0c 打包时需要把课件里面所有视频 音频 图片 试题 文本等内容下载下来 xff0c 视频 图片根据不同需求需要压缩或者转码 xff0c 然后再上传到服务器 xff0c 所以根据课件内容
  • 教你在 PC 上安装 Arch Linux

    Arch Linux以其复杂的基于命令的安装而闻名 但是一旦你熟悉了这个过程的来龙去脉 xff0c 你就可以在任何电脑上安装 Arch 而不必担心终端 我们会帮助你到达那里 注意 xff1a Arch Linux ISO 包含一个名为arc
  • 如何对map进行排序

    Map介绍 常用的Map有HashMap xff0c TreeMap xff0c LinkedHashMap HashMap xff1a 最常用的Map xff0c 根据key的HashCode值来存储数据 xff0c 根据key可以直接获
  • 使用C++ 11 实现阻塞队列

    阻塞队列介绍 阻塞队列主要用于线程和线程之间的通信 当队列为空时 xff0c 从队列中获取元素的线程将会被挂起 xff1b 当队列是满时 xff0c 往队列里添加元素的线程将会挂起 本文使用C 43 43 11中的多线程库 xff0c 实现

随机推荐

  • 如何分析Android的Log

    转载自 http www 2cto com kf 201405 297264 html 首先 xff0c 让我们看一看AndroidLog的格式 下面这段log是以所谓的long格式打印出来的 从前面Logcat的介绍中可以知道 xff0c
  • DB2 的自增主键方式

    DB2 的自增主键方式 xff1a 1 not null generated by default as identity 不会自增长 一定要指定主键值 2 not null GENERATED ALWAYS AS IDENTITY 自增
  • Entity Framework-——数据迁移的过程

    官方文档 xff1a https docs microsoft com zh cn ef index 数据迁移的过程 文章前半部分使用的都是数据库默认的初始化对象 xff0c 即没有使用函数Database SetInitializer 修
  • JavaScript:for循环之1~100的加法运算

    问题 xff1a 求 1 100 之间的整数累加和 首先我们先分析一下这个问题的运算思路 思路分析 xff1a 1 100需要循环100次 需要一个计数器 i 需要一个存储结果的变量sum xff0c 初始值是 0 算法 xff1a 1 4
  • windows sysprep

    简单写下吧 xff0c 之前探究的windows sysprep 发现有些忘了 xff0c 这个还是很重要的 xff0c 不能忘 简单记录下 xff0c 还有其它的代码需要分析 xff0c 太忙了 sysprep是用来清理镜像的 xff0c
  • 容器镜像安全扫描之Trivy

    一 概述 1 1 Trivy简介 Trivy是一种适用于CI的简单而全面的容器漏洞扫描程序 软件漏洞是指软件或操作系统中存在的故障 缺陷或弱点 Trivy检测操作系统包 xff08 Alpine RHEL CentOS等 xff09 和应用
  • 关于天干地支及其计算

    以天干地支计算日期是我国悠良的传统文化 xff0c 最近在看如何计算人的生辰八字 xff0c 写了个程序 xff0c 但是只能算年的干支 xff0c 月 日的干支计算方法太复杂了 xff0c 望之只能却步 xff0c 还是乖乖去查万年历比较
  • [Python] ImportError: DLL load failed ... 找不到指定的模块 此类问题解决方法

    文章目录 问题定位结论补充 问题 最近升级 Python 项目 xff0c 由 Python2 7 升级到 Python3 8 3 xff0c 项目使用了 PySide2 xff0c 对于较新的Python3 8 3 PySide2 可能存
  • [Python] 将py转为 pyc 来保护源码并不实用

    Python 做为一种解释型语言 xff0c 做为服务端程序还好 但如果做为客户端程序 xff0c 就有了暴露源码的问题 很多开发者在寻求安全 便捷的发布程序的方法 比如用pyinstaller xff0c py2exe xff0c 或者转
  • spdlog 封装为 DLL

    项目中需要快速写入巨量日志 xff0c 一开始用的是boost log xff0c 但遇到崩溃问题 xff0c 程序负载大了 xff0c 滚动日志时偶尔会崩溃 xff0c 总是报 xff1a boost filesystem error x
  • 驼峰命名法与下划线命名法之争

    窃以为 xff0c 驼峰命名开发效率更高 xff0c 原因如下 xff1a 下划线命名多输入一个字符 例如 xff1a set name 对比 setName xff0c 多输入一个下划线字符 xff0c 敲击键盘两次Shift 43 而驼
  • [PyQt] 在QLabel上用drawText实现文字滚动

    span class token keyword from span PyQt4 span class token punctuation span QtGui span class token keyword import span sp
  • bootstrap后台 uniform.default.css 使用checkbox 默认选不中问题

    昨天在实际操作中遇见了一个问题 input type 61 39 checkbox 39 设置ckecked 选不中 一直以为是js问题 后来F12看页面发现 是样式的掩盖 lt label gt lt input name 61 34 g
  • [PyQt] 使用.qrc 生成资源文件供程序中使用

    建立 images qrc文件 xff0c 里面保存了资源位置 xff1a span class hljs doctype lt DOCTYPE RCC gt span span class hljs tag lt span class h
  • Tcl/tk实例-工具栏和菜单-图片预览工具

    可以打开并查看图片 xff0c 点击工具栏上 Previous 和 Next 按钮来浏览 前 下 一张 仅仅是一个例子 xff0c 其它按钮和菜单未添加命令 package require Ttk package require Img p
  • Tcl/tk实例—使用tclkit工具将脚本打包成可执行文件(.exe)

    下载 tclkit exe 工具 xff0c 及 sdx kit 文件 复制一份tclkit exe xff0c 命名为tclkit2 exe 假设你的脚本文件为 xff1a app tcl Step1 命令行执行 tclkit exe s
  • Windows Terminal使用oh-my-posh

    安装 winget span class token function install span oh my posh 安装字体 下载Nerd Fonts xff0c 解压缩文件 xff0c 双击安装字体 打开Terminal的设置 gt
  • 2018年省赛题

    2018年题目列表 xff1a 哪天返回猴子分香蕉字母阵列第几个幸运数 xff08 未解决 xff09 书号验证打印大X缩位求和等腰三角形 xff08 未做 xff09 小朋友崇拜圈 xff08 未解决 xff09 耐摔指数 xff08 未
  • Mysql 备份恢复看这一篇就够了

    Mysql 备份恢复 一 备份分类 备份策略 1 1 造成数据丢失的原因 xff1a 程序错误人为操作错误运算错误磁盘故障灾难 xff08 如火灾 地震 xff09 和盗窃 1 2 数据库备份的分类 1 xff09 物理备份 xff1a 对
  • 用Python爬虫获取NBA球员的生涯数据

    NBA球迷往往对球员的各项数据以及对应的排名很感兴趣 xff0c 而basketball reference com这个网站的数据十分详尽 为方便浏览 xff0c 我在github建了一个项目 xff0c 借助该网站提供的数据来汇总某个球员