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

如何抓取同class的完整表格?需用Pandas整理肯尼亚央行Key rates表数据

解决肯尼亚央行官网Key rates表格数据抓取与Pandas整理问题

实现思路

  1. 精准定位目标表格:通过页面源码分析,Key rates表格使用tg类,直接定位该表格避免干扰其他页面元素。
  2. 提取每行完整数据:表格每行包含两个单元格,分别对应利率名称(嵌套在td.tg-4eph的small标签内)和利率数值,遍历行时同时提取这两个字段。
  3. 转换为Pandas表格:将提取到的键值对数据整理为字典列表,再转换为DataFrame格式,便于后续处理。

完整代码

import requests
from bs4 import BeautifulSoup
import pandas as pd

URL = "https://www.centralbank.go.ke/"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')

# 定位Key rates表格
key_rates_table = soup.find('table', class_='tg')
if not key_rates_table:
    print("未找到Key rates表格,请检查页面结构是否变更")
else:
    rates_data = []
    # 遍历表格所有行
    for row in key_rates_table.find_all('tr'):
        cells = row.find_all('td')
        # 仅处理包含两个有效单元格的数据行
        if len(cells) == 2:
            rate_name_elem = cells[0].find('small')
            if rate_name_elem:
                rate_name = rate_name_elem.text.strip()
                rate_value = cells[1].text.strip()
                rates_data.append({"利率名称": rate_name, "数值": rate_value})
    
    # 转换为Pandas DataFrame并输出
    df = pd.DataFrame(rates_data)
    print(df)
    # 可选:保存为本地CSV文件
    # df.to_csv('肯尼亚央行关键利率.csv', index=False, encoding='utf-8-sig')

代码说明

  • 表格定位:使用find('table', class_='tg')直接锁定目标表格,避免抓取无关数据。
  • 数据校验:检查每行单元格数量为2,过滤掉表头或空行;同时判断small标签是否存在,确保名称提取有效。
  • DataFrame转换:将结构化数据转为表格格式,支持直接打印、分析或导出为CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:53:19