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

Python爬虫提取数据后写入csv文件出现问题该如何解决

爬虫写入CSV问题排查方案
  • 索引越界错误排查
    你当前代码直接对findAll返回的列表取[0],如果页面结构变化、对应class的元素未匹配到,会直接触发IndexError报错。推荐改用find方法直接获取首个匹配元素,匹配失败时返回None,再做容错处理:
# 原写法替换为:
job_title_ele = container.find('h2', class_='css-m604qf')
job_title = job_title_ele.text.strip() if job_title_ele else "未知职位"
company_ele = container.find('a', class_='css-17s97q8')
company = company_ele.text.strip() if company_ele else "未知企业"
job_type_ele = container.find('span', class_='css-1ve4b75 eoyjyou0')
job_type = job_type_ele.text.strip() if job_type_ele else "未知类型"
  • CSV格式错位问题排查
    手动用逗号拼接内容时,如果职位名、企业名本身包含逗号,会导致CSV列错位。禁止手动拼接CSV字符串,使用Python标准库csv模块处理格式。
  • 文件操作与编码问题排查
    手动调用file.close()时如果中间代码报错,会导致文件未正常关闭、数据丢失。且默认编码打开文件容易出现中文乱码,推荐用with上下文管理器打开文件,同时指定编码为utf-8-sig适配Windows Excel读取。

优化后完整实现代码

import csv

# 用with上下文管理器自动处理文件关闭
with open('职位数据.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    # 先写入表头
    writer.writerow(['职位名称', '企业名称', '工作类型'])
    for container in containers:
        job_title_ele = container.find('h2', class_='css-m604qf')
        job_title = job_title_ele.text.strip() if job_title_ele else "未知职位"
        company_ele = container.find('a', class_='css-17s97q8')
        company = company_ele.text.strip() if company_ele else "未知企业"
        job_type_ele = container.find('span', class_='css-1ve4b75 eoyjyou0')
        job_type = job_type_ele.text.strip() if job_type_ele else "未知类型"
        # 直接传入列表,csv模块自动处理格式
        writer.writerow([job_title, company, job_type])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:48:03