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

Python脚本实现FxBlue网页表格数据导出至CSV的问题求助

解决FxBlue表格数据规整到Excel的问题

你当前的核心问题是直接抓取了表格的纯文本内容,导致所有数据挤在同一列。要解决这个问题,需要结构化遍历表格的行与单元格,提取对应数据后再用pandas生成规范表格导出到Excel。

修改步骤

  1. 提取表头:定位表格表头区域,获取每列标题作为后续表格的列名
  2. 提取行数据:遍历表格的每一行,逐个提取单元格文本,组成每行的数据集
  3. 生成表格并导出:用pandas将表头和行数据组合成结构化表格,直接导出到Excel

修改后的完整代码

from selenium.webdriver import Chrome
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from time import sleep
import pandas as pd

# 配置信息
Username = ''
Password = ''

# 目标网站链接
FxBlueLink = 'https://www.fxblue.com/live/'

# 安装并启动Chrome驱动
ChromeDriver = ChromeDriverManager().install()
Browser = Chrome(service=Service(ChromeDriver))
Browser.maximize_window()

# 登录流程
Browser.get(FxBlueLink)
Browser.find_element(By.XPATH, 
"/html/body/div[1]/div[5]/div/div[2]/div/div[2]/div[1]/div[3]/form/table/tbody/tr[1]/td/input").send_keys(Username)
Browser.find_element(By.XPATH, 
"/html/body/div[1]/div[5]/div/div[2]/div/div[2]/div[1]/div[3]/form/table/tbody/tr[2]/td/input").send_keys(Password)
sleep(2)
Browser.find_element(By.XPATH, 
"/html/body/div[1]/div[5]/div/div[2]/div/div[2]/div[1]/div[3]/form/table/tbody/tr[3]/td/input").click()

# 进入目标页面
sleep(2)
Browser.get("https://www.fxblue.com/users/rdrtrader")
sleep(2)
Browser.find_element(By.XPATH, 
"/html/body/div[1]/div[5]/div/div[2]/div/div[1]/div/div[1]/div[1]/ul/li[2]").click()

# 选择Magic Number
sleep(2)
Browser.find_element(By.ID, "ext-gen24").click()
sleep(2)
Browser.find_element(By.ID, "ext-gen71").click()
sleep(2)

# 结构化抓取表格数据
table_data = []

# 提取表头
header_cells = Browser.find_elements(By.CLASS_NAME, "x-grid3-hd-inner")
headers = [cell.text.strip() for cell in header_cells if cell.text.strip()]

# 提取所有行数据
rows = Browser.find_elements(By.CLASS_NAME, "x-grid3-row")
for row in rows:
    cells = row.find_elements(By.CLASS_NAME, "x-grid3-cell-inner")
    row_data = [cell.text.strip() for cell in cells if cell.text.strip()]
    if row_data:  # 跳过空行
        table_data.append(row_data)

# 生成DataFrame并导出到Excel
df = pd.DataFrame(table_data, columns=headers)
df.to_excel("fxblue_ea_results.xlsx", index=False)
print("数据已成功导出到fxblue_ea_results.xlsx")

# 清理操作
Browser.quit()
input()

关键说明

  • 不再直接抓取整个表格的纯文本,而是通过FxBlue表格的ExtJS类名(x-grid3-hd-inner、x-grid3-row、x-grid3-cell-inner)精准定位表头、行和单元格
  • 通过列表推导式提取并过滤空内容,避免无效数据混入
  • 利用pandas的DataFrame自动完成数据结构化,导出的Excel会自动对应列与行,解决了数据挤在同一列的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:06:19