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

Python如何使用BeautifulSoup提取a标签href对应的球员姓名文本

实现方法

你使用的BeautifulSoup库中,标签对象的.text属性可以直接获取标签包裹的文本内容,配合简单的链接规则筛选,就能批量提取所有符合要求的球员姓名,避免误取页面其他无关链接的文本内容。

适配原有代码的修改方案

如果你不想调整现有代码结构,直接基于已生成的tags_initial变量提取,可使用以下写法:

player_names = []
for tag_list in tags_initial:
    for a_tag in tag_list:
        # 增加规则过滤非球员的a标签,只保留符合球员链接格式的内容
        href = a_tag.get('href', '')
        if href.startswith('/players/') and href.endswith('.html'):
            player_names.append(a_tag.text)

# 可直接打印查看提取到的姓名列表
print(player_names)

优化后的完整代码

如果要提升运行效率、减少不必要的内存占用,建议用迭代的方式处理页面,无需把所有页面的标签都存在内存中:

import string
import urllib.request
from bs4 import BeautifulSoup

url = 'https://www.basketball-reference.com/players/'
initial = list(string.ascii_lowercase)
initial_url = [url + i for i in initial]

player_names = []
for page_url in initial_url:
    html = urllib.request.urlopen(page_url).read()
    soup = BeautifulSoup(html, 'html.parser')
    # 直接筛选符合球员链接规则的a标签
    for a_tag in soup.find_all('a', href=lambda x: x and x.startswith('/players/') and x.endswith('.html')):
        player_names.append(a_tag.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:18:03