Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果遇到参数,则跳过管道中的处理_Python_Python 2.7_Web Scraping_Scrapy_Pipeline - Fatal编程技术网

Python 如果遇到参数,则跳过管道中的处理

Python 如果遇到参数,则跳过管道中的处理,python,python-2.7,web-scraping,scrapy,pipeline,Python,Python 2.7,Web Scraping,Scrapy,Pipeline,我正在从一个网站上获取产品信息,并检查它是否有库存,是否可以发货。如果它缺货或无法发货,那么我不关心是否将其添加到我的数据库中。所以,我有这个项目,它正在进入管道,一旦我看到它缺货或无法发货,我只想退出管道处理,并将其上的所有内容转储,然后返回蜘蛛抓取下一个要处理的项目。我希望这能让你自食其果。我尝试了raise-DropItem(),但什么也没发生。我检查了数据库,当该字段为空时,应该跳过它,对吗?这是密码 Ships = item['Ships'] Stock = item['InStock

我正在从一个网站上获取产品信息,并检查它是否有库存,是否可以发货。如果它缺货或无法发货,那么我不关心是否将其添加到我的数据库中。所以,我有这个项目,它正在进入管道,一旦我看到它缺货或无法发货,我只想退出管道处理,并将其上的所有内容转储,然后返回蜘蛛抓取下一个要处理的项目。我希望这能让你自食其果。我尝试了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语句而言,它工作正常。当我到了那部分的时候,它就不起作用了。因此,总结一下其中的一个例子,当len(Stock)为0时,我想停止处理这个特定项目,继续获取和处理下一个项目。

我得到了它。里面有一行代码把一切都搞糟了

from __future__ import print_function

当这行代码在我的管道中时,我的
打印结果中没有任何内容。我把那条线移走了,一切都合在一起了。谢谢你的建议。

你能添加一个
print item['InStock'],在
len(Stock)
之前键入(item['InStock']
语句并告诉我你看到了什么吗?是的,泰。我为你打印了一些东西。这是正在处理的代码。
Ships=item['Ships']Stock=item['InStock']打印(“print item Ships=”),(项目['Ships']),类型(项目['Ships'])打印(“打印项目['InStock']=”),项目['InStock']),类型(项目['InStock'])打印(“打印船舶=”),船舶打印(“打印库存=”),股票打印(“打印库存[0]=”),船舶[0]打印(“打印库存[0]=”),股票[0]
这是我从上面的结果
Print item Ships=Print item['InStock']=Print Ships=Print Stock=Print Ships[0]=Print Stock[0]=
我还在实际的spider中放了一点打印代码。
Print(“spider中的item['InStock']值”),item['InStock'],type(item['InStock'])Print(“item['Ships']来自spider的值),项目['Ships'],类型(项目['InStock'])
并从spider[u]获得此结果
item['InStock']值http://schema.org/InStock“]item['Ships']spider[u']的值
我正在查看InStock 1,其中一些是空的,这对我来说没关系。如果我看到“InStock”这个词在那里,我想继续处理它,但除此之外(即使它是空的)然后我想跳过它。但它不是跳过它,当它进入到我将这些插入到表中的部分时,当它进入这个空值时,它是错误的。如果它像它应该的那样跳过,那么它甚至不会进入管道的这个插入到表中的部分。