我开始学习Scrapy但是我在奇怪的地方陷入困境,我无法将默认shell设置为ipython。我的笔记本电脑的操作系统是Ubuntu 15.10。我还安装了ipython和scrapy。它们运行良好而不会导致任何错误。
根据Scrapy的official tutorial,我可以通过在全局配置文件中输入它来更改我的默认scrapy shell
[settings]
shell = ipython
问题是我无法找到配置文件。我尝试按照another page的说明操作。
我在
中制作了这三个配置文件答案 0 :(得分:1)
配置(或测试)scrapy shell
使用的shell的另一种方法是SCRAPY_PYTHON_SHELL
environment variable。
所以跑步:
paul@paul:~$ SCRAPY_PYTHON_SHELL=ipython scrapy shell
会使用ipython
作为首选,无论您在*scrapy.cfg
中的设置如何。
要检查scrapy在哪里查找配置文件及其找到的内容,您可以启动python
解释程序并运行what scrapy shell
does:
$ python
Python 3.5.1+ (default, Mar 30 2016, 22:46:26)
[GCC 5.3.1 20160330] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scrapy.utils.conf import get_config, get_sources
>>> get_sources()
['/etc/scrapy.cfg', 'c:\\scrapy\\scrapy.cfg', '/home/paul/.config/scrapy.cfg', '/home/paul/.scrapy.cfg', '']
>>> cfg = get_config()
>>> cfg.sections()
['deploy', 'settings']
>>> cfg.options('settings')
['shell']
>>> cfg.get('settings', 'shell')
'bpython'
答案 1 :(得分:0)
如果您在项目内,可以使用:
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
settings.get('IMPORT_API_URL')
如果您不在项目中,可以使用:
from scrapy.settings import Settings
settings = Settings()
settings_module_path = os.environ.get('SCRAPY_ENV', 'project.settings.dev')
settings.setmodule(settings_module_path, priority='project')
settings.get('BASE_URL')