首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Django调用Scrapy Spider

从Django调用Scrapy Spider
EN

Stack Overflow用户
提问于 2017-02-28 07:54:27
回答 1查看 1.7K关注 0票数 7

我在同一个工作区中有一个包含django和scrapy文件夹的项目:

代码语言:javascript
复制
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模型的方式

代码语言:javascript
复制
#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中的芹菜任务时,例如:

代码语言:javascript
复制
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
process = CrawlerProcess(get_project_settings())
process.crawl('spider_name')
process.start()

我得到一个错误:

代码语言:javascript
复制
KeyError: 'Spider not found: spider_name'

我想我应该告诉Django Scrapy的位置(就像我在scrapy设置中所做的那样),但我不知道怎么做。老实说,我甚至不确定我如何为这个项目设计我的文件夹结构是正确的选择。

EN

回答 1

Stack Overflow用户

发布于 2019-12-14 20:19:16

遵循scrapy doc中的示例

代码语言:javascript
复制
from my_projec.scrapy_project.spiders import MySpider
...
process.crawl(MySpider)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42497944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档