2013-10-08 38 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