在 Django 中向用户显示 Scrapy 结果

Tim*_*Tim 0 python django scrapy

我对 Python 非常陌生,我正在尝试将 Scrapy 与 Django 集成。

这是我想要实现的:

  1. 用户提交要抓取的 URL
  2. 网址被抓取
  3. 抓取的数据在屏幕中返回给用户
  4. 用户分配属性(如有必要),然后将其保存到数据库。

实现这一目标的最佳方法是什么?我玩过 Django Dynamic Sc​​raper,但我认为我最好为此保持对 Scrapy 的控制。

Guy*_*ely 5

在抓取另一个网站的同时保持 django 请求可能不是最好的主意,这个流程最好异步完成,这意味着,释放 django 请求并有另一个过程来处理抓取,我想这对新手来说不是一件容易的事情,但请尝试忍受我。

流程应该是这样的:

  1. 用户提交从另一个网站抓取一些数据的请求
  2. 蜘蛛爬行在与 django 不同的进程上启动,用户请求被释放
  3. 蜘蛛管道项目到一些数据存储(数据库)
  4. 用户循环询问该数据,django 根据插入到数据存储中的数据更新用户

拍摄scrapy蜘蛛可以通过直接从python代码启动它来完成,使用像celery这样的工具,也可以看到django和celery,或者通过使用python在一个新进程中启动它subprocess,或者甚至更好,使用scrapyd来管理这些蜘蛛