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
bb2018 129
2017-04-28 提问
2 个回答
0

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

0

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

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

撰写答案

推广链接