gpt4 book ai didi

python - 一起使用 django 和 scrapy

转载 作者:行者123 更新时间:2023-12-01 05:25:01 24 4
gpt4 key购买 nike

我在 Scrapy 中有两个爬虫,它们从网站上抓取一些数据,然后最终存储在数据库(sqlite3)中。现在我想使用 Django 进行管理。 Django 必须管理爬虫,即激活、停用、删除等。类似地,数据库中的数据将在 Django 的管理中列出。所有爬虫都将从 Django 运行。到目前为止,我已经学会了如何在 Django 中使用自定义命令,但我无法弄清楚其余部分。任何人都可以帮我出主意吗?我的代码是来自文档的简单教程。我已点击链接

https://docs.djangoproject.com/en/1.6/intro/tutorial01/

有人可以帮我出主意吗?这将是一个很大的帮助。谢谢!!

最佳答案

实际上有两种方法可以管理这些爬虫:同步或异步。

同步意味着用户或管理命令正在执行类似 scrapy crawl command 中所做的操作,这种方法有三个缺点:

  1. 蜘蛛通常需要很长时间来完成他们的工作,而不是你希望网络用户等待服务器打开 session 的时间,另一方面,如果它是从 django 启动的,应该没问题管理命令。
  2. 您必须仔细遵循使用 python 代码激活蜘蛛的方式,这比简单地运行 spidercrawl ....
  3. scrapy 使用twisted 库,这是一种与 django 非常不同的软件架构,虽然有时感觉有点尴尬,但混合它们是可能的。

异步意味着你让启动器(即用户或django管理命令)去并让他轮询django数据库以获取答案或报告进度,这里的主要缺点是启动的蜘蛛和等待的用户之间的通信,向用户报告有关进度以及处理错误,即已爬网的网站已关闭或更改了其结构等。

底线,这两种选择都是可能的,我更喜欢异步方式,将 scrapy 装箱(甚至考虑使用 scrapyd)并让用户轮询(ajax)获取蜘蛛进度。

关于python - 一起使用 django 和 scrapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com