2013-10-08 37 views
2

我正在使用Python Scrapy工具从网站中提取数据。我使用proc_open()从我的php代码发射Scrapy。现在我需要维护一个Dashboard类的东西。有没有在Scrapy中获取Crawler详细信息的方法:如何获得Python Scrapy履带式细节?

  1. Crawler运行所花费的时间。
  2. 爬虫的启动和停止时间。
  3. 履带状态(活动或停止)。
  4. 同时运行的爬行器列表。
+0

您可以编写自己的扩展存储要在仪表板中显示任何数据。然后阅读您的应用程序,而不直接与scrapy交互。你需要更详细的答案吗? – Rolando

+0

@Rho。是的更详细的答案将不胜感激。 – kishan

+0

嗨@Rho ..我在等你的详细答案..如果你在这个问题上提供更多的意见,我会非常有帮助。 – kishan

回答

4

您的问题可以通过使用扩展来解决。

例如:

​​
  1. 时间履带运行采取:这是end time - start time。你可以在从数据库中读取数据或者在结束时间存储时进行计算。

  2. 开始和履带式的停产时间:存储在spider_openedspider_closed方法。

  3. 履带状态(活动或停止):你的爬虫是积极的,如果now - last update time接近5秒。否则,如果最近一次更新是很久以前(30秒,5分钟或更长时间),那么您的蜘蛛或者异常停止或挂起。如果蜘蛛记录有end time,则爬虫已正确完成。爬行的

  4. 名单同时运行:您的前端可以用空的end time查询的记录。那些蜘蛛将会运行或死亡(如果很久以前last update time)。

考虑到spider_closed信号将不会在过程突然完成时调用。您将需要有一个cron作业来清理和/或更新死记录。

不要忘记将扩展名添加到您的settings.py文件,如:

EXTENSIONS = { 
    # SpiderDetails class is in the file mybot/extensions.py 
    'mybot.extensions.SpiderDetails': 1000, 
} 
+0

@Rho ..感谢有关开发扩展的详细信息..我将按照信息,并让我知道我的进步..谢谢.. – kishan