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

如何遍历HTML并解析多实例特定数据?

如何遍历HTML中的多个实例提取目标数据?

针对你提供的HTML结构(包含多条Bot消息实例),可以用Python的BeautifulSoup库实现批量提取,步骤如下:

1. 准备工作

先安装必要库(未安装的话执行):

pip install beautifulsoup4 requests

2. 完整实现代码

from bs4 import BeautifulSoup

# 读取本地HTML文件(若为在线网页,改用requests.get获取内容)
with open("exported_data.html", "r", encoding="utf-8") as file:
    html_content = file.read()

# 解析HTML文档
soup = BeautifulSoup(html_content, "html.parser")

# 定位所有目标消息实例:匹配class为"message default clearfix"的div
all_messages = soup.find_all("div", class_="message default clearfix")

# 遍历每个实例,提取所需信息
for index, msg in enumerate(all_messages, start=1):
    print(f"===== 第{index}条投注信息 =====")
    
    # 提取完整时间(从date标签的title属性获取)
    date_tag = msg.find("div", class_="pull_right date details")
    full_time = date_tag.get("title") if date_tag else "无时间数据"
    print(f"发布时间: {full_time}")
    
    # 提取消息文本内容
    text_block = msg.find("div", class_="text")
    text_lines = [line.strip() for line in text_block.get_text(separator="\n").split("\n") if line.strip()]
    
    # 从文本中提取联赛、投注类型、比赛时间
    league = next((line.split(":", 1)[1].strip() for line in text_lines if "Liga:" in line), "无联赛信息")
    entry_type = next((line.split(":", 1)[1].strip() for line in text_lines if "Entrada:" in line), "无投注类型")
    game_times = next((line.split(":", 1)[1].strip() for line in text_lines if "Jogos:" in line), "无比赛时间")
    print(f"联赛: {league}")
    print(f"投注类型: {entry_type}")
    print(f"比赛时间: {game_times}")
    
    # 提取投注链接
    link_tag = msg.find("a")
    bet_link = link_tag.get("href") if link_tag else "无链接"
    print(f"投注链接: {bet_link}")
    print()

关键说明

  • find_all()方法:这是批量提取的核心,返回所有符合选择器条件的元素列表,替代原代码中提取单个元素的find()方法。
  • 遍历处理:通过enumerate遍历列表,逐个处理每个消息实例,确保不遗漏任何一条数据。
  • 文本字段提取:用生成器表达式结合next()快速定位含目标关键词的行,简化判断逻辑。
  • 在线页面适配:若爬取在线网页,将读取本地文件的代码替换为requests.get(url)获取网页内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:55:01