如果满足参数,则跳过管道中的处理
Skip processing in Pipeline If argument met
我正在从网站获取产品信息并检查它是否有库存和是否可发货。如果它缺货或无法发货,那么我不关心将它添加到我的数据库中。所以,我有这个项目,它正在进入管道,一旦我发现它缺货或没有发货,我只想停止在管道中处理它,并转储我拥有的所有东西,然后返回到蜘蛛抓取下一个要处理的项目。我希望从那以后。我尝试了 raise DropItem() 但什么也没发生。我检查了数据库,当该字段为空时应该跳过它,对吗?这是代码。
Ships = item['Ships']
Stock = item['InStock']
if "shipping not available" in Ships[0].lower():
raise DropItem()
if len(Stock) is 0:
raise DropItem ("Test")
if "instock" not in Stock[0].lower():
raise DropItem()
我已经测试了代码的输出,就 if 语句而言,它工作正常。当我到达 THEN 部分时,它就不起作用了。因此,总结其中的一个示例,当 len(Stock) 为 0 时,我想停止处理这个特定项目并继续获取和处理下一个项目。
我明白了。那里有一行代码把一切都搞砸了。
from __future__ import print_function
当那行代码在我的管道中时,我的 print
结果中什么也没有。我删除了那条线,一切都在一起了。感谢您的建议。
我正在从网站获取产品信息并检查它是否有库存和是否可发货。如果它缺货或无法发货,那么我不关心将它添加到我的数据库中。所以,我有这个项目,它正在进入管道,一旦我发现它缺货或没有发货,我只想停止在管道中处理它,并转储我拥有的所有东西,然后返回到蜘蛛抓取下一个要处理的项目。我希望从那以后。我尝试了 raise DropItem() 但什么也没发生。我检查了数据库,当该字段为空时应该跳过它,对吗?这是代码。
Ships = item['Ships']
Stock = item['InStock']
if "shipping not available" in Ships[0].lower():
raise DropItem()
if len(Stock) is 0:
raise DropItem ("Test")
if "instock" not in Stock[0].lower():
raise DropItem()
我已经测试了代码的输出,就 if 语句而言,它工作正常。当我到达 THEN 部分时,它就不起作用了。因此,总结其中的一个示例,当 len(Stock) 为 0 时,我想停止处理这个特定项目并继续获取和处理下一个项目。
我明白了。那里有一行代码把一切都搞砸了。
from __future__ import print_function
当那行代码在我的管道中时,我的 print
结果中什么也没有。我删除了那条线,一切都在一起了。感谢您的建议。