首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >结合使用django和scrapy

结合使用django和scrapy
EN

Stack Overflow用户
提问于 2014-02-04 05:09:07
回答 1查看 534关注 0票数 1

我在Scrapy中有两个爬虫,它从网站上删除一些数据,然后最后存储在数据库(sqlite3)中。现在我想使用Django来管理。Django必须管理爬虫,即激活、停用、删除等。类似地,数据库中的数据将在Django的管理中列出。所有的爬虫都要从Django跑。到目前为止,我已经学习了如何在Django中使用自定义命令,但我还无法找到其余的部分。有人能帮我提个主意吗?我的代码是文档中的简单教程。我跟踪了这个链接

代码语言:javascript
运行
复制
https://docs.djangoproject.com/en/1.6/intro/tutorial01/

有人能帮我提个主意吗?这会是很大的帮助。谢谢你!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-04 06:24:32

有两种方法可以同步或异步地管理这些爬虫。

同步意味着用户或管理命令正在执行类似于在抓取爬行命令中所做的事情,这种方法有三个缺点:

  1. 蜘蛛通常需要很长的时间来完成他们的工作,而不是你希望一个web用户在打开的会话中等待到服务器上的时间,另一方面,如果它是从django管理命令启动的话,应该是可以的。
  2. 您必须注意使用python代码激活蜘蛛的方式,这比运行spider crawl ....要复杂得多
  3. scrapy使用的是扭曲库,这是一个与django的软件体系结构非常不同的软件体系结构,如果有时感到有点尴尬,那么混合它们是可能的。

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

总之,这两个选项都是可能的,我更喜欢异步方式,保持刮伤装箱(甚至考虑使用scrapyd),并让用户轮询(ajax)来查看蜘蛛进程。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21544372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档