2

我正在尝试按照此处的方法从网络上“抓取”数据,同时使用 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
4

1 回答 1

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
于 2015-09-19T17:16:51.520 回答