如何为Scrapy

时间:2016-07-06 07:39:23

标签: scrapy web-crawler settings

我开始学习Scrapy但是我在奇怪的地方陷入困境,我无法将默认shell设置为ipython。我的笔记本电脑的操作系统是Ubuntu 15.10。我还安装了ipython和scrapy。它们运行良好而不会导致任何错误。

根据Scrapy的official tutorial,我可以通过在全局配置文件中输入它来更改我的默认scrapy shell

 [settings]
 shell = ipython

问题是我无法找到配置文件。我尝试按照another page的说明操作。

我在

中制作了这三个配置文件
  1. /etc/scrapy.cfg(全系统),
  2. 全局(用户范围)设置的
  3. ~/.config/scrapy.cfg($ XDG_CONFIG_HOME)和~/.scrapy.cfg($ HOME)。
  4. 但它根本没有帮助。

    我该怎么办?

    我按照paul trmbrth的第一个回答中的说明进行操作。但是似乎仍然存在问题。 enter image description here

    好像我在正确的位置有一个正确的配置文件。但是我仍然无法用ipython打开scrapy shell,正如你在屏幕截图中看到的那样。有什么想法吗?

2 个答案:

答案 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')