您的位置:首页技术文章
文章详情页

python - 程序为什么执行到这里就停了:if isinstance(item, AnItem): 这句明明是真,到这里就不执行了

【字号: 日期:2022-07-08 08:28:53浏览:79作者:猪猪

问题描述

我在items 里定义了 AnItem

也在spider.py里用 item = AnItem() 定义了.

为什么上面的:if isinstance(item, AnItem):这句后面的就不执行了.

说明:if isinstance(item, AnItem): 是假, 不知道为什么?

我看别人的代码.还有网上的例子都是这样写的

不知道我写的哪里不对?

class AnPipeline(object): def process_item(self, item, spider):print (’process_item1111111111111111111111111111’)if isinstance(item, AnItem): print (’process_item222222222222222222222222222’) title = item[’title’] content = item[’content’] Sql.insert_data_all(title, content) print (u’存完一条信息aaaaaaaaaaaa’) return item

问题解答

回答1:

是真是假,不能输出来看看嘛?

回答2:

if isinstance(item, AnItem):

print (’zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’)else: print (’jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj’)

在pipilines.py 里用上面语句测试了一下:输出 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj不知道哪里出了问题了.按正常的逻辑在 spiders.py里定义了: item = ZbaqcnItem()该导入的都导了.那在在pipilines.py. 应该是真的啊?

现在我感觉应该是import item 有问题?

我在anspiders.py里这样导入:from aqccncn.items import AnItem总是提示出错.ImportError: No module named items 在网上搜了半天也没找到可行的解决办法.只好用下面的方法.

然后我在spiders 文件里建了个items.py 用from items import AnItem 这样导入的.

然后就出现后来的if isinstance(item, AnItem):  是False了.

难道是这里的原因?

最后--------------------------------2016/04/29 18:04修改:

-----------------------

多谢各位.已经解决.原来刚开始的时候from aaaa.items import AnItem 总是提示出错.我又在spiders 文件里建了一个items.py 这样在导入的不是同一个items.py 所以那个AnItem() 也不是同一个.

但是还有一个问题:

如果是在 与 spiders 文件夹 settgins.py 文件同级的目录里建 items.py 文件.为什么这样导入:  from AnAnAn.items import AnItem 就会提示:ImportError:No module named AnAnAn.items 这提示?在 AnAnAn 文件夹里明明有默认生成的那个 items.py 也在里面添加了相应的代码.

这又是哪里有问题? 多谢.

标签: Python 编程