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

BS4抓取的<a>标签列表转DataFrame丢失URL信息:原因及解决方法问询

问题原因与解决方法

问题原因

你当前的代码只是将BeautifulSoup抓取到的<a>标签对象存入列表,当直接把这个列表转换为DataFrame时,pandas会默认调用Tag对象的字符串输出方法,只显示标签内的文本内容(也就是球队名称),不会自动提取href属性,因此URL路径信息丢失。

解决方法

需要手动遍历每个<a>标签,分别提取文本(球队名称)和href属性值,构造包含这两个字段的字典列表,再用pandas转换为DataFrame。

完整代码如下:

import requests
from bs4 import BeautifulSoup
import pandas as pd

URL = "https://www.pro-football-reference.com/years/2022/"
page = requests.get(URL)

soup = BeautifulSoup(page.content, "html.parser")

nfc_results = soup.find(id="div_NFC")
nfc_team_elements = nfc_results.find_all("a")

# 构造存储球队信息的字典列表
team_data = []
for tag in nfc_team_elements:
    # 提取球队名称,strip=True去除前后空白
    team_name = tag.get_text(strip=True)
    # 提取href属性对应的URL路径
    team_url = tag.get("href")
    team_data.append({"Team Name": team_name, "Team Code": team_url})

# 转换为DataFrame
df = pd.DataFrame(team_data)
print(df)

关键步骤说明

  • tag.get_text(strip=True):获取<a>标签内的纯文本内容,strip=True可以清理文本前后的空格、换行符等冗余字符。
  • tag.get("href"):通过get()方法安全提取标签的href属性值,这就是你需要的球队详情页URL路径。
  • 将每个球队的信息封装为字典,再收集到列表中,pandas就能根据字典的键生成对应的列,完美保留你需要的两个字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:52:17