我正在尝试构建功能类似于商店的Django应用。从互联网上刮取项目,并随着时间的推移(例如每隔几天)不断更新Django项目数据库。我正在使用Scrapy框架执行抓取,尽管有一个实验性的DjangoItem feature,但我宁愿远离它,因为它不稳定。
现在,我的计划是使用Scrapy的XMLItemExporter
(文档here)创建已爬网项目的XML文件,并将这些文件用作XML夹具(文档loaddata
)用于Django项目。这似乎是可以的,因为如果两个进程之一搞砸了,它们之间就存在一个文件中介。模块化整个应用程序似乎也不是一个坏主意。
一些问题是:
[实验性DjangoItem的存在表明,Scrapy + Django是一个足够受欢迎的选择,因此这里提供了一个好的解决方案。
我将非常感谢在此问题上的任何解决方案,建议或智慧。
这个问题已经有点老了,但是我目前也在处理Django + Scrapy的正确集成。我的工作流程如下:如loaddata
所述,我已将Scrapy设置为Django管理命令。之后,我只需编写一个Scrapy管道,即可使用Django的QuerySet方法将已抓取的项目保存到Django的数据库中。就这样。我目前正在将SQLite用于数据库,它的工作原理很吸引人。也许这对某人还是有帮助的。
您可以使用django-dynamic-scraper创建和管理可轻松访问Django模型的Scrapy刮板。到目前为止,我还没有遇到无法解决Scrapy无法解决的任何问题。