Estoy trabajando en Scrapy 0.20 con Python 2.7. Descubrí que PyCharm tiene un buen depurador de Python. Quiero probar mis arañas Scrapy usándolo. Alguien sabe como hacer eso por favor?
Lo que he probado
De hecho, intenté ejecutar la araña como un script. Como resultado, construí ese guión. Luego, intenté agregar mi proyecto Scrapy a PyCharm como un modelo como este:File->Setting->Project structure->Add content root.
Pero no se que mas tengo que hacer
ImportError: No module named settings
He comprobado que el directorio de trabajo es el directorio del proyecto. Se usa dentro de un proyecto de Django. ¿Alguien más se topó con este problema?Working directory
, de lo contrario habrá un errorno active project, Unknown command: crawl, Use "scrapy" to see available commands, Process finished with exit code 2
Solo necesitas hacer esto.
Cree un archivo de Python en la carpeta del rastreador de su proyecto. Usé main.py.
Dentro de su main.py, ponga este código a continuación.
Y necesita crear una "Configuración de ejecución" para ejecutar su main.py.
Al hacer esto, si coloca un punto de interrupción en su código, se detendrá allí.
fuente
A partir de 2018.1, esto se volvió mucho más fácil. Ahora puede seleccionar
Module name
en su proyectoRun/Debug Configuration
. Establezca esto enscrapy.cmdline
yWorking directory
en el directorio raíz del proyecto scrapy (el que contienesettings.py
).Al igual que:
Ahora puede agregar puntos de interrupción para depurar su código.
fuente
Estoy ejecutando scrapy en un virtualenv con Python 3.5.0 y estableciendo el parámetro "script" para
/path_to_project_env/env/bin/scrapy
resolver el problema por mí.fuente
project/crawler/crawler
, es decir, el directorio que contiene__init__.py
.intellij idea también funciona.
crear main.py :
mostrar a continuación:
fuente
Para agregar un poco a la respuesta aceptada, después de casi una hora descubrí que tenía que seleccionar la Configuración de ejecución correcta de la lista desplegable (cerca del centro de la barra de herramientas del icono), luego hacer clic en el botón Depurar para que funcione. ¡Espero que esto ayude!
fuente
También estoy usando PyCharm, pero no estoy usando sus funciones de depuración integradas.
Para depurar estoy usando
ipdb
. Configuré un atajo de teclado para insertarimport ipdb; ipdb.set_trace()
en cualquier línea que desee que ocurra el punto de interrupción.Luego puedo escribir
n
para ejecutar la siguiente declaración,s
ingresar a una función, escribir cualquier nombre de objeto para ver su valor, alterar el entorno de ejecución, escribirc
para continuar con la ejecución ...Esto es muy flexible, funciona en entornos distintos a PyCharm, donde no controlas el entorno de ejecución.
Simplemente escriba su entorno virtual
pip install ipdb
y colóqueloimport ipdb; ipdb.set_trace()
en una línea donde desee que se detenga la ejecución.fuente
Según la documentación https://doc.scrapy.org/en/latest/topics/practices.html
fuente
Yo uso este sencillo script:
fuente
Ampliando la versión de @ Rodrigo de la respuesta, agregué este script y ahora puedo establecer el nombre de la araña desde la configuración en lugar de cambiar la cadena.
fuente