You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从HTML的href中提取部分内容并导入pandas数据表?

从HTML的href属性提取内容并导入Pandas数据表的方法

我来帮你搞定这个需求!要从HTML的href里提取信息并放进Pandas,咱们可以用BeautifulSoup来解析HTML,再配合Pandas构建数据表,步骤很清晰:

步骤1:安装必要的库

首先确保你装了beautifulsoup4pandas,如果没装的话,执行下面的命令:

pip install beautifulsoup4 pandas

步骤2:解析HTML并提取目标数据

假设你的HTML片段已经准备好(不管是本地保存的还是从网页请求获取的),咱们一步步来处理:

示例代码

from bs4 import BeautifulSoup
import pandas as pd
from urllib.parse import urlparse, parse_qs

# 你的HTML示例内容
html_content = """</tbody> <tr class="rgRow" id="LeaderBoard1_dg1_ctl00__0"> <td class="grid_line_regular" align="right">1</td> <td class="grid_line_regular"> <a href="statss.aspx?playerid=11205&amp;position=OF">Adam Eaton</a> </td> <td class="grid_line_regular"> <a href="leaders.aspx?pos=all&amp;stats=bat&amp;lg=all&amp;qual=0&amp;type=8&amp;season=2018&amp;am..."""

# 初始化解析器
soup = BeautifulSoup(html_content, 'html.parser')

# 存储提取数据的列表
data = []

# 定位所有包含球员信息的<a>标签
for a_tag in soup.select('td.grid_line_regular a'):
    # 提取球员姓名
    player_name = a_tag.get_text(strip=True)
    # 获取href属性值
    href_link = a_tag['href']
    
    # 解析href中的查询参数
    parsed_url = urlparse(href_link)
    query_params = parse_qs(parsed_url.query)
    
    # 提取需要的参数(处理参数不存在的情况)
    player_id = query_params.get('playerid', [''])[0]
    position = query_params.get('position', [''])[0]
    season = query_params.get('season', [''])[0]
    
    # 将数据存入字典并添加到列表
    data.append({
        '球员姓名': player_name,
        '球员ID': player_id,
        '位置': position,
        '赛季': season
    })

# 转换为Pandas数据表
df = pd.DataFrame(data)

# 查看结果
print(df)

代码细节说明

  • 精准定位元素:用soup.select('td.grid_line_regular a')可以精准找到你要的球员链接标签,避免匹配到无关的a元素。
  • 规范解析URL参数:用urllib.parse的工具类解析href参数,比手动分割字符串更可靠,能自动处理特殊字符和参数缺失的情况。
  • 灵活扩展:如果需要提取href里的其他参数(比如示例中的season),只需要在query_params.get()里添加对应的参数名即可。

要是你有更多行的球员数据,这段代码也能自动遍历所有符合条件的标签,把所有数据都提取出来哦。

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

火山引擎 最新活动