news 2026/5/29 2:46:16

实战Scrapy管道存储:一次爬取,同时存入JSON、CSV和MySQL数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实战Scrapy管道存储:一次爬取,同时存入JSON、CSV和MySQL数据库

大家好,我是老周。上周接了个活——帮一个电商小团队抓取竞品价格数据。需求很简单:每天定时跑爬虫,数据既要给运营的同事直接用Excel打开(CSV格式),又要给数据分析组做历史趋势分析(存MySQL),还得留一份原始数据做备份(JSON格式)。

刚开始我图省事,跑三次爬虫,换三个不同的输出配置。结果呢?不仅浪费了三个小时,还因为三次请求时间不一致,导致三个文件里的数据量对不上,被客户怼了一顿。

后来我认真研究了一下Scrapy的Item Pipeline机制,写了一个“三栖管道”——一次爬取,数据同时写入JSON、CSV和MySQL。今天就把这个方案完整分享出来,希望对你有帮助。

目录

一、准备工作:环境搭建与项目创建

1.1 环境要求

1.2 安装依赖包

1.3 创建Scrapy项目

二、定义Item:数据结构的“合同”

三、编写爬虫:从网页中提取数据

四、Pipeline的进阶实现:三个管道各司其职

4.1 JSON管道:保留原始数据,方便调试和备份

4.2 CSV管道:给运营同事的“开箱即用”文件

4.3 MySQL管道:持久化存储,支持复杂查询

4.4 可选:图片/文件下载管道(扩展知识)

五、配置Settings:启用管道和数据库参数

创建MySQL数据库

六、敏感信息管理:不要把你的密码提交到Git

七、运行爬虫与验证结果

7.1 运行

7.2 验证JSON输出

7.3 验证CSV输出

7.4 验证MySQL

八、进阶优化:让你的管道更健壮

8.1 批量插入MySQL(性能提升10倍)


一、准备工作:环境搭建与项目创建

1.1 环境要求

我用的环境是:

  • Python 3.10+ (3.11也没问题)

  • Scrapy 2.11.0(目前最新稳定版)

  • MySQL 8.0(5.7也兼容,注意字符集设置)

  • pandas 2.0.3(用来写CSV更方便,但不是必须)

1.2 安装依赖包

打开终端,一条条执行:

bash

# 创建虚拟环境(推荐) python -m venv scrapy_env source scrapy_env/bin/activate
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 2:45:40

从toad到Scorecard:一个完整Python评分卡模型的落地实战(附代码)

从TOAD到Scorecard:Python评分卡模型全流程开发指南信用风险评估是金融科技领域最核心的应用场景之一。想象一下,当你在线申请信用卡或消费贷款时,后台系统如何在几秒内判断你的信用等级?这背后往往运行着一个经过精心调校的评分卡…

作者头像 李华
网站建设 2026/5/29 2:43:20

数据结构 树

makefileMakefile 是一个自动化编译工具的控制文件,用于管理程序的编译和链接过程。它定义了源文件之间的依赖关系,并指定如何编译和链接程序。通过 make 命令执行 Makefile 中的指令。只重新编译修改过的文件,避免重复编译自动化复杂的编译过…

作者头像 李华
网站建设 2026/5/29 2:20:00

YOLOv11吸烟场景香烟目标检测数据集-18269张-Smoking-Detection-2

YOLOv11吸烟场景香烟目标检测数据集 📊 数据集基本信息 目标类别: [‘adult’, ‘cigarette’, ‘cige’, ‘person’, ‘smoke’, ‘smoking’]中文类别:[‘成年人’, ‘香烟’, ‘香烟’, ‘人’, ‘烟雾’, ‘吸烟’]训练集:…

作者头像 李华