You need to enable JavaScript to run this app. Python初学者因nhl.com改版旧代码失效,如何提取主场上Powerplay的Team与PP%
优惠活动
大模型
产品
解决方案
定价
更多

Python初学者因nhl.com改版旧代码失效,如何提取主场上Powerplay的Team与PP%

NHL主场Powerplay统计字段提取实现方案

依赖准备

  • 仅需2个轻量Python库完成全流程,执行安装命令:
    pip install requests pandas
  • 优势:直接对接官方公开数据接口,完全绕开网页前端改版导致的元素选择器失效问题,比原有爬取HTML表格的方案稳定性大幅提升

完整可运行代码

import requests
import pandas as pd

# 填入你梳理完成的目标API地址
TARGET_API = "https://api.nhle.com/stats/rest/en/team/powerplay?isAggregate=false&isGame=false&sort=%5B%7B%22property%22:%22powerPlayPct%22,%22direction%22:%22DESC%22%7D%5D&start=0&limit=50&factCayenneExp=gamesPlayed%3E=1&cayenneExp=gameTypeId=2%20and%20homeRoad=%22H%22%20and%20seasonId%3C=20202021%20and%20seasonId%3E=20202021"

# 拉取接口原始数据
resp = requests.get(TARGET_API, timeout=10)
raw_json = resp.json()
# 定位到球队统计数组
stat_entries = raw_json["data"]

# 逐行提取目标字段
extracted_rows = []
for entry in stat_entries:
    extracted_rows.append({
        "Team": entry["teamName"],  # 对应表格第一列Team
        "PP%": entry["powerPlayPct"] # 对应表格倒数第二列PP%
    })

# 转为结构化表格
result_df = pd.DataFrame(extracted_rows)
# 控制台输出预览
print(result_df.head())
# 如需导出本地CSV文件,取消下一行注释执行即可
# result_df.to_csv("nhl_home_pp_stats.csv", index=False, encoding="utf-8-sig")

调试注意事项

  • 该公开API无需鉴权,不要随意添加自定义请求头,否则可能触发接口的基础限流规则
  • 后续更换赛季、主客场筛选条件时,仅需修改API链接内的对应参数(如seasonId、homeRoad取值),核心提取逻辑无需改动
  • 旧代码失效的核心原因是原有逻辑依赖静态网页的DOM结构解析,当前前端为动态渲染表格,直接对接接口数据源可从根源上避免前端改版带来的功能中断

内容的提问来源于stack exchange,提问作者ffspider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 01:24:02