2015-12-07 54 views
2

我的項目中添加Django_app.models在Scrapy的items.py中我的文件結構,django文件夾(mysite)和scrapy文件夾(intex)都在同一個目錄中。如何在我的項目

| mysite (django folder) 
    | mysite 
    | settings.py 
    | urls.py 
    | polls 
    | admin.py 
    | models.py 
    | db.sqlite3 
    | manage.py 

| intex (scrapy folder) 
    | intex 
    | spider 
     | spiders.py 
    | items.py 

這裏是我的models.py文件:

from django.db import models 

class ServiceCenters(models.Model): 

    brand_name = models.CharField(max_length=50,blank=True,default='') 

    service_centre_city = models.CharField(max_length=50,blank=True,default='') 

這裏是我的items.py文件:

import scrapy 
from scrapy_djangoitem import DjangoItem 
from scrapy.item import Item, Field 
from polls.models import ServiceCenters 

class IntexItem(DjangoItem): 
    django_model = ServiceCenters 

我想我的數據保存到服務器Django的,雖然我跑此代碼scrapy crawl scrawl_name 我收到此錯誤:

from polls.models import ServiceCenters 
ImportError: No module named polls.models 

回答

3

您需要告訴python在哪裏可以找到polls.models模塊。首先,您需要將包含您的django應用程序的文件夾添加到PYTHONPATH;其次,配置django以便能夠訪問您的模型。

這是代碼片段來實現這一點:在導入之前,你的模型,我的意思是,前行

import os 
import sys 
import django 

sys.path.append('...absolute path to mysite...') 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 
django.setup() 

此代碼需要運行

from polls.models import ServiceCenters

希望這可以幫助你

+0

謝謝...... :) –