如何在Scrapy我的项目的items.py中添加Django_app.models

时间:2015-12-07 07:22:27

标签: python django scrapy

我的文件结构,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

1 个答案:

答案 0 :(得分: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

希望这有助于你