pycharm 调试 scrapy

版本说明

python: 3.6
pycharm: 4.5.5
scrapy: 1.3.2

学习 scrapy 是发现调试和以往不同,无法像普通python项目一样,通过设置断点,调试启动,然后在断点处停止,开始调试。
scrapy 是通过 scrapy 的解释器 scrapy.exe 完成,所以官方教程中提供的执行命令: scrapy crawl quotes -o quotes.json

调试设置

打开pycharm工程调试配置界面(Run -> Edit Configurations)。


  1. 选择工程。选择调试工程 quotes_spider,官方文档提供的示例工程。
  2. 设置执行脚本(Script)。设置为 H:\Python\Python36\Lib\site-packages\scrapy\cmdline.pycmdline.pyscrapy 提供的命令行调用脚本,此处将启动脚本设置为 cmdline.py,将需要调试的工程作为参数传递给此脚本。
  3. 设置执行脚本参数(Script parameters)。设置为 crawl quotes -o quotes.jl,参数命令参照官方文档提供的爬虫执行命令:scrapy crawl quotes -o quotes.json,与之不同的是设置参数时不包含 scrapy
  4. 设置工作目录(Work Directory)。设置为工程根目录 H:\work\python\myscrapy\tutorial,根目录下包含爬虫配置文件 scrapy.cfg

配置如下图:

pycharm 调试 scrapy_第1张图片

配置完成后,在 parse 函数处设置断点,调试运行配置好的工程,断点命中,并在控制台输出调试信息。
pycharm 调试 scrapy_第2张图片

遇到问题

1. Unknown command: crawl

调试运行,断点并未命中,控制台输出信息如下:

H:\Python\Python36\python.exe "H:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.4\helpers\pydev\pydevd.py" --multiproc --client 127.0.0.1 --port 59810 --file H:/Python/Python36/Lib/site-packages/scrapy/cmdline.py crawl quotes -o quotes.jl
pydev debugger: process 4740 is connecting

Connected to pydev debugger (build 141.3058)
Scrapy 1.3.2 - no active project

Unknown command: crawl

Use "scrapy" to see available commands

Process finished with exit code 2

工作目录设置有误,造成无法识别 scrapy 命令,按照上文所说,将工作目录设置为包含 scrapy.cfg,重新运行,问题解决。

你可能感兴趣的:(python,scrapy,爬虫)