Ich arbeite an Scrapy 0.20 mit Python 2.7. Ich fand, dass PyCharm einen guten Python-Debugger hat. Ich möchte meine Scrapy-Spinnen damit testen. Weiß jemand wie man das bitte macht?
Was ich versucht habe
Eigentlich habe ich versucht, die Spinne als Skript auszuführen. Als Ergebnis habe ich dieses Skript erstellt. Dann habe ich versucht, mein Scrapy-Projekt als Modell wie folgt zu PyCharm hinzuzufügen:File->Setting->Project structure->Add content root.
Aber ich weiß nicht, was ich sonst noch tun muss
ImportError: No module named settings
Ich habe überprüft, ob das Arbeitsverzeichnis das Projektverzeichnis ist. Es wird in einem Django-Projekt verwendet. Ist sonst noch jemand auf dieses Problem gestoßen?Working directory
, sonst wird Fehlerno active project, Unknown command: crawl, Use "scrapy" to see available commands, Process finished with exit code 2
Sie müssen dies nur tun.
Erstellen Sie eine Python-Datei im Crawler-Ordner Ihres Projekts. Ich habe main.py verwendet.
Geben Sie diesen Code in Ihre main.py ein.
Und Sie müssen eine "Run Configuration" erstellen, um Ihre main.py auszuführen.
Wenn Sie dabei einen Haltepunkt an Ihrem Code setzen, wird dieser dort gestoppt.
quelle
Ab 2018.1 wurde dies viel einfacher. Sie können jetzt
Module name
in Ihrem Projekt auswählenRun/Debug Configuration
. Setzen Sie dies aufscrapy.cmdline
undWorking directory
auf das Stammverzeichnis des Scrapy-Projekts (das mit demsettings.py
darin enthaltenen).Wie so:
Jetzt können Sie Haltepunkte hinzufügen, um Ihren Code zu debuggen.
quelle
Ich führe Scrapy in einer virtuellen Umgebung mit Python 3.5.0 aus und setze den Parameter "script", um
/path_to_project_env/env/bin/scrapy
das Problem für mich zu lösen.quelle
project/crawler/crawler
das Verzeichnis setzen, das enthält__init__.py
.Intellij Idee funktioniert auch.
create main.py :
unten zeigen:
quelle
Um der akzeptierten Antwort etwas hinzuzufügen, musste ich nach fast einer Stunde die richtige Ausführungskonfiguration aus der Dropdown-Liste (nahe der Mitte der Symbolsymbolleiste) auswählen und dann auf die Schaltfläche Debuggen klicken, damit sie funktioniert. Hoffe das hilft!
quelle
Ich verwende auch PyCharm, aber ich verwende nicht die integrierten Debugging-Funktionen.
Zum Debuggen verwende ich
ipdb
. Ich habe eine Tastenkombination eingerichtet, dieimport ipdb; ipdb.set_trace()
in jede Zeile eingefügt werden soll, in der der Haltepunkt auftreten soll.Dann kann ich eingeben
n
, um die nächste Anweisung auszuführen,s
eine Funktion einzugeben, einen beliebigen Objektnamen eingeben, um seinen Wert anzuzeigen, die Ausführungsumgebung ändern, eingebenc
, um die Ausführung fortzusetzen ...Dies ist sehr flexibel und funktioniert in anderen Umgebungen als PyCharm, in denen Sie die Ausführungsumgebung nicht steuern.
Geben Sie einfach Ihre virtuelle Umgebung ein
pip install ipdb
und platzieren Sie sieimport ipdb; ipdb.set_trace()
in einer Zeile, in der die Ausführung angehalten werden soll.quelle
Gemäß der Dokumentation https://doc.scrapy.org/en/latest/topics/practices.html
quelle
Ich benutze dieses einfache Skript:
quelle
Erweitern der @ Rodrigo-Version der Antwort Ich habe dieses Skript hinzugefügt und kann jetzt den Spinnennamen aus der Konfiguration festlegen, anstatt die Zeichenfolge zu ändern.
quelle