将信息从Scrapy爬虫连续导出到Django应用程序数据库的最佳方法是什么?

emi*_*ish 6 django production-environment scrapy django-fixtures

我正在尝试构建一个类似于商店的Django应用程序.从互联网上删除项目,并随着时间的推移不断更新Django项目数据库(比如每隔几天).我正在使用Scrapy框架来执行抓取,虽然有一个实验性的DjangoItem功能,但我宁愿远离它,因为它不稳定.

现在我的计划是使用Scrapy XMLItemExporter(此处为 docs )创建已爬行项目的XML文件,并将这些loaddata文件用作XML fixture(这里的文档)进入Django项目.这似乎没问题,因为如果两个进程中的一个搞砸了,它们之间就有一个文件中介.模拟整个应用程序似乎也不是一个坏主意.

一些担忧是:

  • 这些文件可能太大而无法读入Django的内存loaddata.
  • 当我可能有更好或更简单的解决方案时,例如直接导出到数据库,在这种情况下是MySQL,我花费了太多时间.
  • 似乎没有人在网上写过这个过程,这很奇怪,考虑到Scrapy是我认为插入Django应用程序的优秀框架.
  • 没有关于在Django的文档上手动创建Django灯具的明确指南 - 看起来它更倾向于从应用程序本身转储和重新加载灯具.

实验性DjangoItem的存在表明Scrapy + Django是一个很受欢迎的选择,因为这里有一个很好的解决方案.

我非常感谢有关此事的任何解决方案,建议或智慧.

pem*_*ahl 1

这个问题已经有点老了,但我目前也在处理 Django + Scrapy 的正确集成。我的工作流程如下:我已将 Scrapy 设置为 Django 管理命令,如本答案中所述。之后,我只需编写一个 Scrapy 管道,使用 Django 的 QuerySet 方法将抓取的项目保存到 Django 的数据库中。就这样。我目前正在使用 SQLite 作为数据库,它的工作方式就像一个魅力。也许这对某人仍然有帮助。