scrapy 使用pycharm 调试,是通过scrapy的 cmdline模块实现的。
原理就是把命令行需要的命令和参数,传入运行时环境上下文。
可以完全通过pycharm工具设置来实现,也可以通过在代码中引入scrapy.cmdline来实现。
1. pycharm 修改配置
在不同的版本中布局可能略有不同,在本文写作的时候,用的是2020.2 。
在菜单 Run/Edit Configurations/ 中Configuration 配置项中,
将 Script path 替换为 Module Name ,并输入模块名, scrapy.cmdline
同时输入命令行需要执行的命令,
如本例中的命令为
scrapy runspider quotes_spider.py -o quotes.json
则在Parameters的配置中输入参数
runspider quotes_spider.py -o quotes.json
如果有settings.py文件,要保证 Working directory 的配置指向settings.py 所在路径中
2. 通过增加main.py 文件 实现 scrapy.cmdline 功能
main文件配置如下
#!/usr/bin/python
from scrapy.cmdline import execute
execute()
在菜单 Run/Edit Configurations/ 中Configuration 配置项中,
script path: /Library/Python/XXX/site-packages/scrapy/cmdline.py (根据python安装路径决定)
Parameters : 与1 中相同
runspider quotes_spider.py -o quotes.json
Working directory
配置也形同。
3. 总结
1和2中的方法是一样的,主要区别,2中通过main入口 在cmdline.py 基础之上 运行了scrapy.cmdline的execute入口。可以说 方法2 是方法1 的白盒。
建议理解之后可以直接用1来处理。