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

发布于 2022-09-04 21:06:03 字数 662 浏览 27 评论 0

我在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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

看轻我的陪伴 2022-09-11 21:06:03

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

贪了杯 2022-09-11 21:06:03

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 也在里面添加了相应的代码.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文