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

如何用Python获取可点击文本背后的Schedule专属URL链接

无法提取NBA球队Schedule专属URL的解决方法

问题现状

使用requests和BeautifulSoup爬取NBA球队页面时,仅能获取球队名称及“Roster | Schedule | Stats”文本,无法提取Schedule对应的专属链接。现有代码及运行结果如下:

现有代码

import requests
from bs4 import BeautifulSoup
import pandas as pd
session = requests.Session()
session.verify = False
session.trust_env = False
url = 'https://basketball.realgm.com/nba/teams'
response = session.get(url)
soup = BeautifulSoup(response.text, 'html.parser')


teams = soup.findAll('div',{'class':'small-column-left'})

for team in teams:
    name = team.get_text().strip()
    schedule_url = team.get('a[href]')

 print(name)

运行结果示例

Atlanta Hawks
Roster | Schedule | Stats
Charlotte Hornets
Roster | Schedule | Stats
...

错误原因

  1. 选择器定位错误:原代码选取的small-column-left容器包含了球队名称和链接组的所有文本,导致get_text()返回混合内容
  2. 链接提取方式错误:team.get('a[href]')不是BeautifulSoup提取子元素属性的正确语法,无法获取到目标链接

修正后的代码

import requests
from bs4 import BeautifulSoup

session = requests.Session()
session.verify = False
session.trust_env = False
base_url = 'https://basketball.realgm.com'
url = f'{base_url}/nba/teams'
response = session.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 定位每个球队对应的行元素
team_rows = soup.find_all('tr', class_='row')

for row in team_rows:
    # 提取球队名称
    team_name_elem = row.find('td', class_='small-column-left').find('a')
    team_name = team_name_elem.get_text().strip()
    
    # 精准定位Schedule链接并提取完整URL
    schedule_elem = row.find('a', string='Schedule')
    if schedule_elem:
        schedule_full_url = f"{base_url}{schedule_elem.get('href')}"
        print(f"{team_name}: {schedule_full_url}")
    else:
        print(f"{team_name}: 未找到Schedule链接")

修正说明

  • 调整选择器:直接定位每个球队所在的行(tr.row),确保单支球队的信息独立分离
  • 精准提取名称:从行内的small-column-left标签下找到球队名称的<a>元素,避免文本混合
  • 定向获取链接:通过find('a', string='Schedule')直接匹配Schedule对应的链接标签,提取href后拼接成完整可访问的URL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:11:29