2

ここの方法に従って、Web からデータを「Scrapy」し、同時に Scrapy のアイテム パイプラインを使用して、そのデータを Django データベースに直接保存しようとしています。

ただし、実行しようとするとscrapy crawl spidername、次のエラーが表示されます。

ImportError: No module named django.core.management

最初は、Scrapy プロジェクトが Django プロジェクト フォルダーの外にあるためだと思っていましたが、プロジェクト全体を Django プロジェクト フォルダーに移動した後でも、同じエラーが発生し続けました。新しい場所 (Django プロジェクト フォルダー内) の Scrapy プロジェクト フォルダー内で Python シェルを開くと、正常に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 に答える