大家好,又见面了,我是你们的朋友全栈君。
版本说明
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)。
- 选择工程。选择调试工程
quotes_spider
,官方文档提供的示例工程。 - 设置执行脚本(Script)。设置为
H:PythonPython36Libsite-packagesscrapycmdline.py
,cmdline.py
是scrapy
提供的命令行调用脚本,此处将启动脚本设置为cmdline.py
,将需要调试的工程作为参数传递给此脚本。 - 设置执行脚本参数(Script parameters)。设置为
crawl quotes -o quotes.jl
,参数命令参照官方文档提供的爬虫执行命令:scrapy crawl quotes -o quotes.json
,与之不同的是设置参数时不包含scrapy
。 - 设置工作目录(Work Directory)。设置为工程根目录
H:workpythonmyscrapytutorial
,根目录下包含爬虫配置文件scrapy.cfg
。
配置如下图:
配置完成后,在 parse
函数处设置断点,调试运行配置好的工程,断点命中,并在控制台输出调试信息。
遇到问题
1. Unknown command: crawl
调试运行,断点并未命中,控制台输出信息如下:
代码语言:javascript复制H:PythonPython36python.exe "H:Program Files (x86)JetBrainsPyCharm Community Edition 4.5.4helperspydevpydevd.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
,重新运行,问题解决。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/226873.html原文链接:https://javaforall.cn