我正在尝试从网络上关注方法here到'Scrapy'数据,同时使用Scrapy的项目管道将数据直接保存到我的Django数据库。
但是,当我尝试运行scrapy crawl spidername
时,我收到错误:
ImportError: No module named django.core.management
起初我以为是因为我的Scrapy项目不在我的Django项目文件夹中,但即使我将整个项目移动到我的Django项目文件夹中,我仍然遇到同样的错误。如果我在Scrapy项目文件夹中的新位置(在我的Django项目文件夹中)打开一个python shell,import django.core.management
工作正常。那是怎么回事?
编辑:其他一些信息:我在Webfaction服务器上执行此操作,而我的Django项目的路径为/home/gchorn/webapps/django_app/django_project
。我正在使用Django 1.4.1版本,Scrapy 0.16和Python2.7。 Django + Scrapy项目的布局如下:
django_project/
__init__.py
manage.py
settings.py
urls.py
myproject #folder containing wsgi.py
app1
app2
app3
templates
ScrapyProject/
scrapy.cfg
ScrapyProject/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
my_spider.py
答案 0 :(得分:0)
尝试在Spider的settings.py中设置此项:
import os
import sys
sys.path.append('/home/gchorn/webapps/django_app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'
然后您可以导入模型类,如:
from django_project.app1.models import some_model