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

使用BeautifulSoup与urllib抓取网页表格后,如何拆分文字与数字?

解决表格抓取后字符串拆分问题

我来帮你搞定这个问题!你现在遇到的是抓取表格数据时,没有正确解析单元格内容,导致所有文本揉成了一串,咱们分两步解决:先处理已经得到的连续字符串,再优化抓取代码从根源避免这个问题。

一、处理已有的连续字符串

首先咱们先把你拿到的字符串里的"Index"去掉,再拆分省份和对应的数字。这里用正则表达式最方便,因为省份都是首字母大写的单词,数字是带小数点的格式,刚好可以精准匹配:

import re

# 你得到的原始字符串
original_str = "IndexAceh5.82Bali6.23Banten5.85Bengkulu4.81DKI6."

# 第一步:移除"Index"
clean_str = original_str.replace("Index", "")

# 第二步:用正则匹配省份和数字
# 正则规则:匹配首字母大写的单词(省份),紧跟一个带小数点的数字
pattern = re.compile(r'([A-Z][a-zA-Z]+)(\d+\.\d+)')
matches = pattern.findall(clean_str)

# 拆分到两个列表
prov = [item[0] for item in matches]
number = [float(item[1]) for item in matches]

# 输出结果
print("省份列表:", prov)
print("数字列表:", number)

运行这段代码后,你就能得到分开的prov和number列表啦。如果最后那个"DKI6."是不完整的数字(比如应该是6.xx),正则会自动忽略它,避免引入错误数据。

二、优化抓取代码,从根源避免连续字符串

其实你一开始就不用先拿到这种乱糟糟的字符串,直接遍历表格的行和单元格提取内容更靠谱。我帮你完善一下抓取部分的代码:

import urllib2
from bs4 import BeautifulSoup

quote_page = "MY LINK"  # 替换成你的目标链接
page = urllib2.urlopen(quote_page)
soup = BeautifulSoup(page, 'html.parser')

# 找到目标表格(你可以根据实际情况调整,比如用class或者id定位)
# 假设你的表格有个id叫"province-data-table",如果没有就用soup.find('table')取第一个表格
target_table = soup.find('table', id="province-data-table")

prov = []
number = []

# 遍历表格的每一行,跳过表头行(如果表头是<tr>里的<th>的话)
for row in target_table.find_all('tr'):
    # 获取当前行的所有单元格
    cells = row.find_all('td')
    # 确保至少有两个单元格(省份+数字)
    if len(cells) >= 2:
        # 提取省份名称,strip()去掉多余空格
        province_name = cells[0].get_text(strip=True)
        # 提取数字并转成浮点数
        try:
            province_num = float(cells[1].get_text(strip=True))
            # 只有内容有效时才添加到列表
            if province_name:
                prov.append(province_name)
                number.append(province_num)
        except ValueError:
            # 如果数字格式不对,跳过或者记录错误
            print(f"无法解析{province_name}的数字:{cells[1].get_text()}")

print("省份列表:", prov)
print("数字列表:", number)

这段代码会直接从表格的单元格里提取内容,不会出现文本连在一起的情况,还能处理一些格式错误的情况,比先拿到连续字符串再拆分要靠谱得多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:40:55