Pipeline 管道实战:JSON/CSV 存储、数据库持久化

📂 所属阶段:第二阶段 — 数据流转(数据处理篇)


1. JSON 存储

# pipelines.py
import json

class JsonPipeline:
    def open_spider(self, spider):
        self.file = open('items.json', 'w', encoding='utf-8')
    
    def close_spider(self, spider):
        self.file.close()
    
    def process_item(self, item, spider):
        line = json.dumps(dict(item), ensure_ascii=False) + '\n'
        self.file.write(line)
        return item

2. MySQL 存储

import pymysql

class MysqlPipeline:
    def open_spider(self, spider):
        self.conn = pymysql.connect(
            host='localhost',
            user='root',
            password='password',
            database='mydb'
        )
        self.cursor = self.conn.cursor()
    
    def close_spider(self, spider):
        self.conn.close()
    
    def process_item(self, item, spider):
        sql = "INSERT INTO products (title, price) VALUES (%s, %s)"
        self.cursor.execute(sql, (item['title'], item['price']))
        self.conn.commit()
        return item

3. 小结

Pipeline 用途:
- 数据清洗
- 数据验证
- 数据存储

支持多个 Pipeline 链式处理

💡 记住:Pipeline 是数据的最后一站。在这里确保数据质量。


🔗 扩展阅读