我正在尝试构建一个功能类似于商店的 Django 应用程序。项目是从互联网上抓取的,并随着时间的推移(比如每隔几天)不断更新 Django 项目数据库。我正在使用 Scrapy 框架执行抓取,虽然有一个实验性的DjangoItem 功能,但我宁愿远离它,因为它不稳定。
现在,我的计划是使用 Scrapy XMLItemExporter
(此处的文档)创建已爬取项目的 XML 文件,并将这些文件作为 XML 固定装置(此处的文档)使用loaddata
到 Django 项目中。这似乎没问题,因为如果两个进程之一搞砸了,它们之间就有一个文件中介。将应用程序作为一个整体模块化似乎也不是一个坏主意。
一些担忧是:
- 这些文件可能太大而无法读入 Django 的
loaddata
. - 当可能有更好或更简单的解决方案时,我在这方面花费了太多时间,例如直接导出到数据库,在这种情况下是 MySQL。
- 似乎没有人在网上写过这个过程,考虑到 Scrapy 在我看来是一个可以插入 Django 应用程序的优秀框架,这很奇怪。
- 在 Django 的文档上没有手动创建 Django 固定装置的明确指南 - 似乎它更倾向于从应用程序本身转储和重新加载固定装置。
实验性 DjangoItem 的存在表明 Scrapy + Django 是一个足够流行的选择,因为这里有一个很好的解决方案。
我将非常感谢有关此问题的任何解决方案、建议或智慧。