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

使用BeautifulSoup爬取篮球裁判信息遇AttributeError报错求助

问题解决:爬取Basketball Reference赛事裁判信息

错误原因

你的代码中soup.find(string = "Officials: ")返回了None,说明BeautifulSoup未找到匹配的文本内容,后续调用.next_sibling自然触发AttributeError。主要问题点包括:

  • 请求方法写错:requests.Get应为小写的requests.get,Python方法名区分大小写
  • 直接匹配纯字符串易失败:页面内的"Officials: "并非独立纯文本,而是嵌套在特定标签中,单纯匹配字符串无法定位
  • 未设置请求头:可能被网站反爬机制拦截,导致获取的页面内容不完整

修正后的代码

import requests
from bs4 import BeautifulSoup

# 设置请求头模拟浏览器,避免反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
url = "https://www.basketball-reference.com/wnba/boxscores/201506050CON.html"
# 修正请求方法为小写get
data = requests.get(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

# 通过标签+文本内容的方式定位裁判信息容器
officials_container = soup.find(lambda tag: tag.name == 'div' and "Officials:" in tag.text)
if officials_container:
    # 提取并清理裁判信息文本
    refs = officials_container.text.replace("Officials:", "").strip()
    print(refs)
else:
    print("未找到裁判信息")

关键说明

  • 用requests.get替代错误的requests.Get,符合Python方法命名规范
  • 添加请求头模拟正常浏览器访问,避免被网站拦截
  • 采用lambda表达式匹配包含目标文本的标签,比单纯匹配字符串更稳定,适配页面标签嵌套结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:32:02