批量处理爬取文件需统一归类、清洗转换、语义重命名、异常监控与断点续传。用os/shutil归类文件,pandas清洗并存为Parquet,基于标题/时间/哈希重命名,try/except捕获错误,记录日志与断点实现可重复运行。

批量处理爬取到的文件是Python爬虫项目后期的关键环节,核心在于统一格式、去重清洗、分类存储和高效读写。不靠手动拖拽,用脚本自动完成才真正提升效率。
统一整理原始数据文件
爬虫常生成大量零散文件(如JSON、TXT、CSV),先按来源或时间归类到子目录中。用os.listdir()扫描目标路径,再用shutil.move()按文件后缀或关键词重定向到对应文件夹。例如把所有"detail_*.json"移到./data/detail/,把"list_*.csv"移到./data/list/。
批量清洗与结构化转换
原始数据常含乱码、空行、重复项或字段缺失。推荐用pandas统一加载并处理:
- 用pd.read_json()或pd.read_csv()批量读取同类型文件,合并为一个DataFrame
- 调用drop_duplicates()去重,dropna(subset=['title'])过滤关键字段为空的行
- 用str.strip().replace()清理文本字段,pd.to_datetime()标准化时间列
- 最后用df.to_parquet()保存为Parquet格式——体积小、读取快,适合后续分析
按规则自动重命名与归档
避免文件名混乱导致后续难定位。可基于内容生成语义化名称,比如提取标题前10字+日期+哈希摘要:
立即学习“Python免费学习笔记(深入)”;
- 读取每个JSON中的"title"和"publish_time"
- 用hashlib.md5(content.encode()).hexdigest()[:6]生成简短标识
- 组合为f"{clean_title[:10]}_{date}_{md5}",加上后缀保存(如news_20240520_a1b2c3.json)
- 处理完移入./archive/并记录操作日志到process_log.csv
异常监控与断点续传支持
批量任务中途出错很常见,别让整个流程重跑:
- 用try/except包裹单个文件处理逻辑,记录失败文件路径到failed_list.txt
- 在循环前检查os.path.exists('./.last_processed'),跳过已成功处理的文件
- 每次成功处理后,把当前文件名写入该标记文件,实现轻量级断点
- 加一行logging.info(f"✅ {filename} done"),比print更易追踪进度
基本上就这些。不复杂但容易忽略——关键是把“一次性的脚本”写成“可重复运行的工具”。










