如何在Selenium Python中格式化列表数据并写入CSV文件?
解决方案:将Selenium抓取的数据写入CSV
你可以用Python标准库的csv模块完成这个任务,根据需求不同,有两种常用写法:
方式一:结构化表格输出(适合数据分析)
这种方式把所有信息整理成标准CSV表格,所有字段作为列,单条数据占一行。
步骤1:解析键值对列表
先写个辅助函数,把['Company Name: PATRY PLC', ...]这类列表拆成键值对字典:
def parse_key_value(lst): data_dict = {} for item in lst: if ': ' in item: key, val = item.split(': ', 1) data_dict[key.strip()] = val.strip() return data_dict
步骤2:整理数据
假设你的5个列表分别是company_info、mailing_addr、physical_addr、reg_header、reg_data,先解析前三个列表:
company_data = parse_key_value(company_info) mailing_data = parse_key_value(mailing_addr) physical_data = parse_key_value(physical_addr)
合并表头和对应数据行:
# 构建表头:公司字段 + 带前缀的邮寄地址字段 + 带前缀的物理地址字段 + 注册字段 headers = ( list(company_data.keys()) + [f"Mailing {k}" for k in mailing_data.keys()] + [f"Physical {k}" for k in physical_data.keys()] + reg_header ) # 构建对应的数据行 row_data = ( list(company_data.values()) + list(mailing_data.values()) + list(physical_data.values()) + reg_data )
步骤3:写入CSV
import csv with open('company_records.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) writer.writerow(headers) writer.writerow(row_data)
方式二:分块格式化输出(适合人工阅读)
如果要贴近原始数据的展示逻辑,分块写入可读性更强:
import csv with open('company_data_formatted.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) # 写入公司基本信息 writer.writerow(['公司基本信息']) for line in company_info: writer.writerow([line]) writer.writerow([]) # 空行分隔 # 写入邮寄地址 writer.writerow(['邮寄地址']) for line in mailing_addr: writer.writerow([line]) writer.writerow([]) # 写入物理地址 writer.writerow(['物理地址']) for line in physical_addr: writer.writerow([line]) writer.writerow([]) # 写入注册信息表格 writer.writerow(reg_header) writer.writerow(reg_data)
注意事项
- 替换代码中的列表名称(
company_info等)为你实际使用的变量名 newline=''避免Windows系统下写入CSV出现多余空行utf-8编码确保兼容特殊字符
内容的提问来源于stack exchange,提问作者Sidath
相关产品推荐
相关产品推荐

