如何用Python整理从不规则表格中抓取的数据?
提取非规整表格数据到DataFrame的解决方案
由于目标表格是键值对结构(每行包含一个字段名和对应值),可以通过以下步骤提取数据并转换为单行DataFrame:
- 遍历表格的每一行,提取字段名(第一个
<td>内容)和对应值(第二个<td>内容) - 将提取的键值对存入字典
- 将字典转换为pandas DataFrame
完整代码
import requests from bs4 import BeautifulSoup import pandas as pd # 抓取页面内容 html = requests.get("https://www.tce.sp.gov.br/jurisprudencia/exibir?proc=18955/989/20&offset=0") soup = BeautifulSoup(html.content, 'html.parser') # 定位目标表格 info_table = soup.find("table", attrs={"class": "table"}) # 初始化存储字典 data_dict = {} # 遍历表格行提取数据 for row in info_table.find_all('tr'): cells = row.find_all('td') # 确保每行包含两个单元格(字段名+值) if len(cells) == 2: # 提取并清理字段名和值 field_name = cells[0].get_text(strip=True) field_value = cells[1].get_text(strip=True) data_dict[field_name] = field_value # 转换为单行DataFrame df = pd.DataFrame([data_dict]) # 查看结果 print(df)
说明
- 使用
get_text(strip=True)可以自动去除文本前后的空白字符和换行符 - 若部分行存在合并单元格(colspan/rowspan),可根据实际结构调整判断逻辑
- 确保已安装
pandas库(可通过pip install pandas安装)
内容的提问来源于stack exchange,提问作者João Pedro Rodrigues Oliveira
相关产品推荐
相关产品推荐

