我正在使用Python Scrapy工具從網站中提取數據。我使用proc_open()
從我的php代碼發射Scrapy。現在我需要維護一個Dashboard類的東西。有沒有在Scrapy中獲取Crawler詳細信息的方法:如何獲得Python Scrapy履帶式細節?
- Crawler運行所花費的時間。
- 爬蟲的啓動和停止時間。
- 履帶狀態(活動或停止)。
- 同時運行的爬行器列表。
我正在使用Python Scrapy工具從網站中提取數據。我使用proc_open()
從我的php代碼發射Scrapy。現在我需要維護一個Dashboard類的東西。有沒有在Scrapy中獲取Crawler詳細信息的方法:如何獲得Python Scrapy履帶式細節?
您的問題可以通過使用擴展來解決。
例如:
時間履帶運行採取:這是end time - start time
。你可以在從數據庫中讀取數據或者在結束時間存儲時進行計算。
開始和履帶式的停產時間:存儲在spider_opened
和spider_closed
方法。
履帶狀態(活動或停止):你的爬蟲是積極的,如果now - last update time
接近5秒。否則,如果最近一次更新是很久以前(30秒,5分鐘或更長時間),那麼您的蜘蛛或者異常停止或掛起。如果蜘蛛記錄有end time
,則爬蟲已正確完成。爬行的
名單同時運行:您的前端可以用空的end time
查詢的記錄。那些蜘蛛將會運行或死亡(如果很久以前last update time
)。
考慮到spider_closed
信號將不會在過程突然完成時調用。您將需要有一個cron作業來清理和/或更新死記錄。
不要忘記將擴展名添加到您的settings.py
文件,如:
EXTENSIONS = {
# SpiderDetails class is in the file mybot/extensions.py
'mybot.extensions.SpiderDetails': 1000,
}
@Rho ..感謝有關開發擴展的詳細信息..我將按照信息,並讓我知道我的進步..謝謝.. – kishan
您可以編寫自己的擴展存儲要在儀表板中顯示任何數據。然後閱讀您的應用程序,而不直接與scrapy交互。你需要更詳細的答案嗎? – Rolando
@Rho。是的更詳細的答案將不勝感激。 – kishan
嗨@Rho ..我在等你的詳細答案..如果你在這個問題上提供更多的意見,我會非常有幫助。 – kishan