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

如何通过正则表达式匹配id筛选read_html返回的表格?

仅针对HTML表格id用正则筛选的解决方法

如果你需要用正则匹配表格的id属性(比如.+-game-basic这种模式),但pd.read_html的attrs参数不支持正则,match参数又会遍历全文文本,那么可以通过先筛选目标表格再交给pandas处理的方式解决:

步骤说明

  1. 先获取目标页面的HTML源码
  2. 用BeautifulSoup精准筛选出符合id正则的表格
  3. 将筛选后的表格转为HTML字符串,再用pd.read_html解析

完整代码示例

import pandas as pd
import requests
from bs4 import BeautifulSoup
import re

# 替换成你的目标URL
url = "https://example.com/your-page"

# 获取页面HTML
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 筛选id匹配`.+-game-basic`正则的表格
target_tables = soup.find_all("table", id=re.compile(r".+-game-basic"))

# 把每个表格解析成DataFrame
result_dfs = []
for table in target_tables:
    # 将BeautifulSoup表格对象转为HTML字符串
    table_html = str(table)
    # 读取表格(因为是单个表格,取索引0的结果)
    df = pd.read_html(table_html)[0]
    result_dfs.append(df)

# 现在result_dfs里就是所有符合id规则的表格数据

为什么这么做?

  • pd.read_html的attrs参数仅支持精确匹配属性值,无法直接传入正则表达式
  • match参数是对表格内的文本内容进行匹配,不是针对HTML属性,不符合需求
  • 通过BeautifulSoup先筛选,能精准定位到id符合规则的表格,再交给pandas解析,完全满足"仅针对id筛选"的需求

依赖安装

如果还没装requests和beautifulsoup4,执行以下命令安装:

pip install requests beautifulsoup4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:26