You need to enable JavaScript to run this app. 使用Python+Selenium抓取网站数据导出CSV格式异常问题求助
优惠活动
大模型
产品
解决方案
定价
更多

使用Python+Selenium抓取网站数据导出CSV格式异常问题求助

问题原因
  • 遍历逻辑错误:原代码直接提取所有<td>元素逐个写入,没有按<tr>(表格行)分组,writerow每次只会把单个单元格内容写为一行,自然出现单列/单行的异常输出
  • 未处理单元格内换行:部分<td>内的多个分类用<br>分隔,直接读取.text会携带换行符,写入CSV时会被识别为换行,导致表格错位
修正代码
import csv
from selenium.webdriver.common.by import By

# 先提取所有表格行
rows = driver.find_elements(By.XPATH, "//tbody[@id='sitesList']/tr[@class='item-row']")

with open('test.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    # 可选:根据实际列定义写入表头
    # writer.writerow(['站点信息','数值1','数值2','链接类型','分类','权益','价格','操作'])
    for row in rows:
        # 提取当前行所有td的文本
        tds = row.find_elements(By.TAG_NAME, 'td')
        row_data = []
        for td in tds:
            # 把单元格内的换行替换为逗号,避免CSV错位
            text = td.text.replace('\n', ',')
            row_data.append(text)
        # 整行写入CSV
        writer.writerow(row_data)
补充说明
  • 打开CSV时加newline=''是为了避免Windows系统下出现多余空行
  • 加encoding='utf-8-sig'可以兼容Excel打开时的中文显示问题
  • 如果需要提取单元格内的链接地址,可以额外用td.find_element(By.TAG_NAME, 'a').get_attribute('href')获取对应属性写入CSV

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 21:24:05