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

如何通过BeautifulSoup优雅提取ResultSet中<td>标签内的数字?

优雅提取BS4 ResultSet中标签内的数字

你可以直接利用BeautifulSoup的内置标签方法提取文本,完全不需要手动替换标签字符串,这是更健壮、简洁的处理方式:

基础提取(所有数字平铺)

如果要把所有里的数字提取成一个列表(转成整数会自动去掉前导零):

# 假设你的ResultSet对象名为tbodies
all_numbers = [int(td.get_text(strip=True)) for tbody in tbodies for td in tbody.find_all('td')]

如果需要保留带前导零的字符串形式:

all_number_strings = [td.get_text(strip=True) for tbody in tbodies for td in tbody.find_all('td')]

按行分组提取

如果想保持原的分组结构,得到每行的数字列表:

grouped_numbers = [
    [int(td.get_text(strip=True)) for td in tr.find_all('td')]
    for tbody in tbodies
    for tr in tbody.find_all('tr')
]

内存友好的生成器方式

如果数据量较大,用生成器表达式节省内存:

number_generator = (int(td.get_text(strip=True)) for tbody in tbodies for td in tbody.find_all('td'))

为什么这比字符串替换更优雅?

  • get_text(strip=True)是BeautifulSoup专门用于提取标签文本的内置方法,会自动忽略标签内的换行、空格等空白字符,处理更可靠;
  • 完全基于HTML结构解析,而非字符串拼接替换,避免了标签格式变化导致的错误(比如标签带额外属性的情况);
  • 代码逻辑清晰,直接对应HTML层级结构,可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:45