You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网络爬虫时如何开启pro-football-reference站点的表格筛选开关?

解决方案

那个「排序表格时隐藏非达标项」是页面前端JavaScript实现的交互功能,你用urllib请求拿到的是服务端返回的原始静态HTML,所有数据(包括达标/非达标球员)都在返回内容里,开关状态不会影响服务端返回结果,因此无需也无法通过调整爬虫请求切换开关,直接按页面内置的标记过滤非达标行即可:
站点已经给所有非达标球员的表格行加了non_qualifier的CSS类,只要爬取时过滤掉带该类的行,得到的结果就和开关开启后的展示效果完全一致。

修改后的代码

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://www.pro-football-reference.com/years/2021/rushing.htm'
html = urlopen(url)
stats_page = BeautifulSoup(html, features="lxml")

rows = []
for row in stats_page.find_all('tr')[1:]:
    # 过滤空行、非达标行
    row_cells = row.find_all('td')
    if not row_cells or 'non_qualifier' in row.get('class', []):
        continue
    rows.append([cell.get_text() for cell in row_cells])

# 按Y/A列倒序排序
rows.sort(key=lambda x: float(x[11]), reverse=True)

效果验证

过滤后排序的结果会和你开启开关后看到的排序结果完全一致,不会再出现仅冲球1、2次的非达标球员排在前列的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:03