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

如何缩小soup.find结果范围,提取维基足球球员infobox高亮文本?

问题

每个足球运动员的维基百科页面都设有infobox模块,用于展示职业生涯信息。我的目标是抓取这些页面中的高亮数据,目前已能输出infobox段文本,但仅需其中的高亮内容,请问如何缩小结果范围以只获取该部分文本?

解决方案
  • 基于HTML结构直接提取:维基百科infobox里的高亮内容普遍用<b>或<strong>标签包裹,如果你是用爬虫工具(比如BeautifulSoup)处理渲染后的HTML,可以直接在已获取的infobox节点下筛选这类标签的文本:

    from bs4 import BeautifulSoup
    
    # infobox_html为你已获取的infobox段HTML文本
    soup = BeautifulSoup(infobox_html, 'html.parser')
    highlighted_content = [tag.get_text(strip=True) for tag in soup.find_all(['b', 'strong'])]
    
  • 从维基原始wikitext匹配:如果抓取的是维基百科的原始编辑文本(wikitext),高亮内容是用'''三重单引号'''包裹的,直接用正则表达式匹配提取:

    import re
    
    # infobox_wikitext为你已获取的infobox段原始文本
    match_pattern = r"'''(.*?)'''"
    highlighted_content = re.findall(match_pattern, infobox_wikitext)
    
  • 精准定位目标字段的高亮内容:如果只需要特定字段的高亮信息(比如国籍、当前俱乐部),可以先定位infobox内对应字段的行,再提取该行内的加粗部分。比如用BeautifulSoup先找到包含目标字段的节点,再从中筛选<b>/<strong>标签内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:10:15