Maison > Questions et réponses > le corps du texte
J'ai défini AnItem dans items
Il est également défini dans spider.py en utilisant item = AnItem().
Pourquoi ce qui précède : if isinstance(item, AnItem) : La phrase suivante ne sera pas exécutée.
Explication : if isinstance(item, AnItem) : est faux, je ne sais pas pourquoi ?
Je regarde le code des autres. Il existe également des exemples sur Internet qui s'écrivent ainsi
Je ne sais pas ce que j’ai mal écrit ?
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
習慣沉默2017-05-18 10:59:41
if isinstance(item, AnItem):
print ('zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz')
else:
print ('jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj')
Utilisez l'instruction ci-dessus dans pipelines.py pour la tester : sortie jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
Je ne sais pas ce qui n'a pas fonctionné.
Selon la logique normale, il est défini dans spiders.py : item = ZbaqcnItem()
Tout ce qui doit être importé est importé. Alors c'est dans pipelines.py. Cela devrait être vrai ?
Maintenant, j'ai l'impression qu'il devrait y avoir un problème avec l'article importé ?
Je l'ai importé comme ceci dans anspiders.py :
from aqccncn.items import AnItem
provoque toujours une erreur. ImportError : Aucun module nommé items
J'ai longtemps cherché en ligne et je n'ai pas trouvé de solution réalisable.
Je n'ai pas d'autre choix que d'utiliser la méthode suivante.
Ensuite, j'ai créé items.py dans le fichier spiders
Je l'ai importé en utilisant from items import AnItem.
Ensuite, le dernier if isinstance(item, AnItem): est False.
Est-ce la raison ?
Enfin———————————————————————————————————————————— —
Modifié le 29/04/2016 18:04 :
---------------------
Merci à tous. Déjà résolu. Il s'avère qu'au début, depuis aaaa.items, l'importation d'AnItem provoquait toujours une erreur. J'ai à nouveau créé un items.py dans le fichier spiders, donc le items.py importé n'est pas le même, donc le AnItem() n'est pas le même non plus.
Mais il reste encore une question :
Si vous créez le fichier items.py dans le même répertoire que le fichier settgins.py du dossier spiders. Pourquoi importer comme ceci : depuis AnAnAn.items, importer AnItem affichera : ImportError : Aucun module nommé AnAnAn.items ?
Dans le dossier AnAnAn, il y a évidemment le items.py généré par défaut, et le code correspondant y est ajouté.
Qu'est-ce qui ne va pas avec ça ? Merci.