[英]Calling Scrapy Spider from Django
我在同一个工作区中有一个带有 django 和 scrapy 文件夹的项目:
my_project/
django_project/
django_project/
settings.py
app1/
app2/
manage.py
...
scrapy_project/
scrapy_project/
settings.py
scrapy.cfg
...
我已经将scrapy与我的django app1模型连接起来,所以每次我运行我的蜘蛛时,它都会将收集到的数据存储在我的postgresql数据库中。 这就是我的scrapy项目如何访问django模型
#in my_project/scrapy_project/scrapy_project/settings.py
import sys
import os
import django
sys.path.append('/../../django_project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'
django.setup()
当我从命令行调用蜘蛛时,一切都很好,但是当我想从 django 视图或 django 中的 Celery 任务中将蜘蛛作为脚本调用时,例如:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
process = CrawlerProcess(get_project_settings())
process.crawl('spider_name')
process.start()
我收到一个错误:
KeyError: 'Spider not found: spider_name'
我想我应该告诉 Django Scrapy 在哪里(就像我在 scrapy 设置中所做的那样),但我不知道如何。 老实说,我什至不确定我如何为这个项目设计文件夹结构是正确的选择。
按照scrapy doc中的示例:
from my_projec.scrapy_project.spiders import MySpider
...
process.crawl(MySpider)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.