首頁  >  問答  >  主體

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
漂亮男人漂亮男人2734 天前874

全部回覆(2)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:59:41

    是真是假,不能輸出來看看嘛?

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-18 10:59:41

    if isinstance(item, AnItem):

        print ('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')
    else:
        print ('jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj')
    

    在pipilines.py 裡用上面語句測試了一下:輸出 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
    以正常的邏輯在 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 也在裡面加入了對應的程式碼.

    這又是哪裡有問題? 多謝.

    回覆
    0
  • 取消回覆