#数据质量保证:数据验证、异常处理
📂 所属阶段:第四阶段 — 实战演练(项目开发篇)
#1. 数据验证
from scrapy.exceptions import DropItem
class ValidationPipeline:
def process_item(self, item, spider):
# 必填字段检查
required_fields = ['title', 'price', 'url']
for field in required_fields:
if not item.get(field):
raise DropItem(f"Missing {field}")
# 数据类型检查
try:
item['price'] = float(item['price'])
except ValueError:
raise DropItem("Invalid price")
return item#2. 异常处理
class ErrorHandlingMiddleware:
def process_exception(self, request, exception, spider):
# 记录错误
spider.logger.error(f"Error: {exception}")
# 重试
if isinstance(exception, TimeoutError):
return request
# 放弃
return None#3. 小结
质量保证三步:
1. 验证:检查数据有效性
2. 异常处理:捕获错误
3. 日志记录:便于调试
好处:
- 减少脏数据
- 提升稳定性
- 便于维护💡 记住:数据质量决定分析质量。投入时间做好验证和异常处理,后续工作会轻松 10 倍。
🔗 扩展阅读

