scrapy框架-pipeline数据验证
当item(数据)被搜集后,都会被传递到Item Pipeline进行处理,我们可以先对数据进行处理比如:数据验证
常见案例:
价格验证-无价格去除
让我们看一下下面的假设管道,该管道调整price
不包含增值税的那些项目的 属性(price_excludes_vat
属性),并删除不包含价格的那些项目:
from itemadapter import ItemAdapter
from scrapy.exceptions import DropItem
class PricePipeline:
vat_factor = 1.15
def process_item(self, item, spider):
adapter = ItemAdapter(item)
if adapter.get('price'):
if adapter.get('price_excludes_vat'):
adapter['price'] = adapter['price'] * self.vat_factor
return item
else:
raise DropItem(f"Missing price in {item}")
激活项目管道组件
要激活Item Pipeline组件,必须将其类添加到 ITEM_PIPELINES
设置中,如以下示例所示:
ITEM_PIPELINES = {
'myproject.pipelines.PricePipeline': 800,
}
您在此设置中分配给类的整数值确定它们运行的顺序:项目从值较低的类转到值较高的类。通常将这些数字定义在0-1000范围内。