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

如何合并d1与d2的所有行数据并保存至DataFrame?

合并Selenium获取的表格行数据并保存为DataFrame

要实现将d1和d2的所有行数据合并并保存为DataFrame,你需要先收集每行数据(而非仅打印),再将数据合并后转换为DataFrame。以下是修改后的完整代码及说明:

完整代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pandas as pd

# 初始化浏览器驱动(根据你的浏览器类型调整,比如ChromeDriver)
driver = webdriver.Chrome()
# 补充打开目标页面的代码:driver.get("你的目标URL")

lst1 = [1,2,3,5,8,9,10,11]
lst2 = [4,5,6,8,9,17,19,29,37]

# 初始化空列表存储数据
data1 = []
data2 = []

# 收集TabPanel1的行数据
for i in lst1:
    d1 = driver.find_element(By.XPATH, f'//*[@id="ContentPlaceHolder1_ctl01_TabPanel1"]/table/tbody/tr[{i}]')
    # 将每行文本按空格分割为字段(若表格列用制表符分隔,可改用split("\t"))
    row_data = d1.text.split()
    data1.append(row_data)
    time.sleep(1)

# 切换到TabPanel2
driver.find_element(By.XPATH, '//*[@id="__tab_ContentPlaceHolder1_ctl01_TabPanel2"]/span').click()
time.sleep(2)

# 收集TabPanel2的行数据
for j in lst2:
    d2 = driver.find_element(By.XPATH, f'//*[@id="ContentPlaceHolder1_ctl01_TabPanel2"]/table/tbody/tr[{j}]')
    row_data = d2.text.split()
    data2.append(row_data)
    time.sleep(1)

# 合并两个数据集
combined_data = data1 + data2

# 转换为DataFrame
# 如果需要指定列名,可添加columns参数,比如columns=["列1", "列2", "列3"]
df = pd.DataFrame(combined_data)

# 可选:保存为CSV文件
# df.to_csv("合并数据.csv", index=False, encoding="utf-8-sig")

# 关闭浏览器
driver.quit()

关键说明

  • 数据收集:原代码仅打印行文本,这里改为将每行文本分割为字段列表并添加到数据列表中,确保数据可被pandas处理。
  • 分割方式:split()默认按任意空白字符分割(空格、制表符等),如果表格列是用特定分隔符(比如竖线|),请替换为split("|")并按需清理多余空格。
  • 列名处理:如果表格有表头,可先单独获取表头行的文本作为列名,比如:
    header = driver.find_element(By.XPATH, '//*[@id="ContentPlaceHolder1_ctl01_TabPanel1"]/table/thead/tr').text.split()
    df = pd.DataFrame(combined_data, columns=header)
    
  • 数据验证:转换为DataFrame后,可通过print(df.head())查看前几行数据,确认格式是否正确。

内容的提问来源于stack exchange,提问作者ناصر نثار

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:15:32