数据清洗与校验:过滤脏数据、字段验证

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


1. 数据清洗

class CleaningPipeline:
    def process_item(self, item, spider):
        # 去空格
        item['title'] = item['title'].strip()
        
        # 去重复空格
        item['title'] = ' '.join(item['title'].split())
        
        # 转小写
        item['category'] = item['category'].lower()
        
        # 转数字
        item['price'] = float(item['price'].replace('$', ''))
        
        return item

2. 数据验证

from scrapy.exceptions import DropItem

class ValidationPipeline:
    def process_item(self, item, spider):
        # 必填字段检查
        if not item.get('title'):
            raise DropItem("Missing title")
        
        # 数据类型检查
        if not isinstance(item['price'], (int, float)):
            raise DropItem("Invalid price")
        
        # 数据范围检查
        if item['price'] < 0:
            raise DropItem("Negative price")
        
        return item

3. 小结

数据质量三步:

1. 清洗:格式化数据
2. 验证:检查数据有效性
3. 存储:保存到数据库

好处:
- 减少脏数据
- 提升数据质量
- 便于后续分析

💡 记住:数据质量决定分析质量。投入时间做好清洗和验证,后续工作会轻松 10 倍。


🔗 扩展阅读