Je travaille sur Scrapy 0.20 avec Python 2.7. J'ai trouvé que PyCharm avait un bon débogueur Python. Je veux tester mes araignées Scrapy en l'utilisant. Quelqu'un sait comment faire ça s'il vous plait?
Ce que j'ai essayé
En fait, j'ai essayé d'exécuter l'araignée en tant que script. En conséquence, j'ai construit ce script. Ensuite, j'ai essayé d'ajouter mon projet Scrapy à PyCharm en tant que modèle comme celui-ci:File->Setting->Project structure->Add content root.
Mais je ne sais pas ce que je dois faire d'autre
ImportError: No module named settings
J'ai vérifié que le répertoire de travail est le répertoire du projet. Il est utilisé dans un projet Django. Quelqu'un d'autre est tombé sur ce problème?Working directory
, sinon erreurno active project, Unknown command: crawl, Use "scrapy" to see available commands, Process finished with exit code 2
Vous avez juste besoin de le faire.
Créez un fichier Python sur le dossier du robot d'exploration de votre projet. J'ai utilisé main.py.
Dans votre main.py mettez ce code ci-dessous.
Et vous devez créer une "Configuration d'exécution" pour exécuter votre main.py.
En faisant cela, si vous mettez un point d'arrêt à votre code, il s'arrêtera là.
la source
À partir de 2018.1, cela est devenu beaucoup plus facile. Vous pouvez maintenant sélectionner
Module name
dans votre projetRun/Debug Configuration
. Définissez ceci surscrapy.cmdline
etWorking directory
sur le répertoire racine du projet scrapy (celui qui contientsettings.py
).Ainsi:
Vous pouvez maintenant ajouter des points d'arrêt pour déboguer votre code.
la source
J'utilise scrapy dans un virtualenv avec Python 3.5.0 et je règle le paramètre "script" pour
/path_to_project_env/env/bin/scrapy
résoudre le problème pour moi.la source
project/crawler/crawler
, c'est- à -dire, le répertoire contenant__init__.py
.L'idée intellij fonctionne également.
créez main.py :
montrer ci-dessous:
la source
Pour ajouter un peu à la réponse acceptée, après presque une heure, j'ai trouvé que je devais sélectionner la bonne configuration d'exécution dans la liste déroulante (près du centre de la barre d'outils de l'icône), puis cliquez sur le bouton Déboguer pour la faire fonctionner. J'espère que cela t'aides!
la source
J'utilise également PyCharm, mais je n'utilise pas ses fonctionnalités de débogage intégrées.
Pour le débogage que j'utilise
ipdb
. J'ai configuré un raccourci clavier à insérerimport ipdb; ipdb.set_trace()
sur n'importe quelle ligne que je souhaite que le point d'arrêt se produise.Ensuite, je peux taper
n
pour exécuter l'instruction suivante,s
pour entrer dans une fonction, taper n'importe quel nom d'objet pour voir sa valeur, modifier l'environnement d'exécution, taperc
pour continuer l'exécution ...Ceci est très flexible, fonctionne dans des environnements autres que PyCharm, où vous ne contrôlez pas l'environnement d'exécution.
Tapez simplement votre environnement virtuel
pip install ipdb
et placez-leimport ipdb; ipdb.set_trace()
sur une ligne où vous voulez que l'exécution s'arrête.la source
Selon la documentation https://doc.scrapy.org/en/latest/topics/practices.html
la source
J'utilise ce script simple:
la source
Extension de la version de la réponse de @ Rodrigo J'ai ajouté ce script et maintenant je peux définir le nom de l'araignée à partir de la configuration au lieu de changer la chaîne.
la source