我的文件结构,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
答案 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
希望这有助于你