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

使用Python从HTML提取玩家ID遇问题求助

解决特殊格式href的玩家ID提取问题

嘿,我之前也碰到过类似的情况!从你说的每行都返回{}来看,肯定是你的元素选择器没命中目标——毕竟这个网站的href格式比较特殊,常规的匹配逻辑可能没覆盖到。

先结合你给出的部分HTML片段(<tr data-row="248">那行),目标IDlynnla02应该是嵌在对应行的<a>标签href里对吧?我给你几个靠谱的解决思路,用Python的BeautifulSoup举例(毕竟这是最常用的HTML提取工具):

1. 用正则匹配含目标ID的href

直接通过正则锁定包含lynnla02的<a>标签,再从href里抠出ID:

from bs4 import BeautifulSoup
import re

# 把你的网页源代码赋值给html变量
soup = BeautifulSoup(html, 'html.parser')

# 匹配href中包含lynnla02的<a>标签
target_link = soup.find('a', href=re.compile(r'lynnla02'))

if target_link:
    # 从href里提取ID,比如href是"/players/lynnla02"的话,split后取最后一段
    player_id = target_link['href'].split('/')[-1]
    print({"player_id": player_id})
else:
    print("没找到目标ID哦")

2. 遍历所有链接筛选

如果不确定标签位置,直接遍历页面所有<a>标签,检查href里是否包含目标ID:

for a_tag in soup.find_all('a'):
    href = a_tag.get('href', '')
    if 'lynnla02' in href:
        player_id = href.split('/')[-1]
        print({"player_id": player_id})
        break  # 找到第一个就停,省得遍历全部

3. 先定位表格行再找链接

既然你给出了<tr data-row="248">,可以先精准定位到这一行,再找里面的链接:

target_row = soup.find('tr', attrs={'data-row': '248'})
if target_row:
    target_link = target_row.find('a')
    if target_link and 'lynnla02' in target_link['href']:
        player_id = target_link['href'].split('/')[-1]
        print({"player_id": player_id})

核心逻辑就是:不要硬写固定的href格式,而是通过目标ID来反向匹配,这样不管href是相对路径还是带其他前缀,都能命中。你之前返回空字典,就是因为选择器没找到对应的元素,导致提取的内容为空~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:27