python - 程序為什么執行到這里就停了:if isinstance(item, AnItem): 這句明明是真,到這里就不執行了
問題描述
我在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 也在里面添加了相應的代碼.
這又是哪里有問題? 多謝.
