Saya menentukan AnItem dalam item
Ia juga ditakrifkan dalam spider.py menggunakan item = AnItem().
Mengapa di atas: jika isinstance(item, AnItem): Ayat berikut tidak akan dilaksanakan.
Penjelasan: jika isinstance(item, AnItem): adalah palsu, saya tidak tahu mengapa?
Saya melihat kod orang lain. Terdapat juga contoh di Internet yang ditulis seperti ini
Saya tidak tahu apa yang saya salah tulis?
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
Adakah ia benar atau salah?
jika isinstance(item, AnItem):
Mengujinya menggunakan pernyataan di atas dalam saluran paip.py: output jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
Saya tidak tahu apa yang salah.
Mengikut logik biasa, ia ditakrifkan dalam spiders.py: item = ZbaqcnItem()
Semua yang perlu diimport adalah diimport. Kemudian ia dalam pipelines.py Ia sepatutnya benar?
Sekarang saya rasa perlu ada masalah dengan barang import?
Saya mengimport seperti ini dalam anspiders.py:
dari aqccncn.items import AnItem
Ia sentiasa menggesa ralat. ImportError: Tiada modul bernama item
Saya mencari dalam talian untuk masa yang lama dan tidak menemui penyelesaian yang boleh dilaksanakan.
Tiada pilihan selain menggunakan kaedah berikut.
Kemudian saya mencipta items.py dalam fail spiders
Saya mengimportnya menggunakan item import AnItem.
Kemudian jika isinstance(item, AnItem): adalah Palsu.
Adakah ini sebabnya?
Akhirnya——————————————————————————————————————————————
Diubah suai pada 2016/04/29 18:04:
——————————————————————————————
Terima kasih semua. Sudah diselesaikan. Ternyata pada mulanya, dari aaaa.items import AnItem sentiasa menimbulkan ralat. Saya mencipta item.py dalam fail spiders sekali lagi, jadi item.py yang diimport tidak sama, jadi AnItem() juga tidak sama.
Tetapi ada satu lagi soalan:
Jika anda mencipta fail items.py dalam direktori yang sama dengan fail settgins.py dalam folder spiders. Mengapa mengimport seperti ini: daripada AnAnAn.items import AnItem akan menggesa: ImportError: Tiada modul bernama AnAnAn.items?
Dalam folder AnAnAn, jelas terdapat item.py yang dijana secara lalai, dan kod yang sepadan ditambahkan padanya.
Apakah masalah ini? terima kasih.