Maison  >  Questions et réponses  >  le corps du texte

python - Pourquoi le programme s'arrête-t-il à ce stade : if isinstance(item, AnItem) : cette phrase est évidemment vraie, mais elle ne sera pas exécutée à ce stade.

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
漂亮男人漂亮男人2734 Il y a quelques jours870

répondre à tous(2)je répondrai

  • 过去多啦不再A梦

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

    Est-ce vrai ou faux ? Vous ne pouvez pas le sortir pour voir ?

    répondre
    0
  • 習慣沉默

    習慣沉默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.

    répondre
    0
  • Annulerrépondre