爬蟲管理平臺Crawlab v0.3.0發佈(Golang版本)

基於Golang的分佈式爬蟲管理平臺,支持Python、NodeJS、Java、Go、PHP等多種編程語言以及多種爬蟲框架。git

項目自今年三月份上線以來受到爬蟲愛好者們和開發者們的好評,很多使用者還表示會用Crawlab搭建公司的爬蟲平臺。通過近數月的迭代,咱們陸續上線了定時任務、數據分析、網站信息、可配置爬蟲、自動提取字段、下載結果、上傳爬蟲等功能,將Crawlab打造得更加實用,更加全面,可以真正幫助用戶解決爬蟲管理困難的問題。github

Crawlab主要解決的是大量爬蟲管理困難的問題,例如須要監控上百個網站的參雜scrapyselenium的項目不容易作到同時管理,並且命令行管理的成本很是高,還容易出錯。Crawlab支持任何語言和任何框架,配合任務調度、任務監控,很容易作到對成規模的爬蟲項目進行有效監控管理。數據庫

更新內容

本次v0.3.0版本是一次重大更新,主要是將原來基於Celery的Python版本後臺用Golang替代了。更新內容以下:編程

  • Golang後端: 將原先的Python代碼由Golang重構,提升了穩定性和性能
  • 節點拓撲圖: 將節點拓撲結構可視化了
  • 節點系統信息: 能夠看到節點的系統信息,例如操做系統、CPU數量,執行文件等等
  • 節點監控升級: 節點經過Redis來註冊監控
  • 文件管理: 可以修改爬蟲文件,而且提供代碼高亮
  • 登陸/註冊/用戶管理: 要求用戶登陸使用Crawlab,容許用戶註冊和用戶管理,加入了基於角色的權限管理
  • 自動爬蟲部署: 爬蟲被自動同步/部署到全部在線節點
  • 更小的Docker鏡像: 經過多階段構建,將原先的Docker鏡像大小從1.3G瘦身到700M

爲何會重構Crawlab

用Golang重構的初衷是爲了解決一些根本性的bug,例如定時任務沒法穩定觸發,節點不會自動顯示爲離線,等等。重構後的API會更加穩定,更加高性能,之前任務列表響應大概在幾百毫秒,而如今僅僅須要幾毫秒。此外,本次重構優化了用戶使用流程,例如以前須要手動部署爬蟲,須要用戶點擊不少次才能運行爬蟲;而如今,全部爬蟲都是自動部署,代價是用戶上傳爬蟲以後須要等待不到1分鐘的時間,待爬蟲文件經過GridFS部署到全部節點以後,才能夠運行(固然,主節點是能夠直接運行的)。本次重構還加入了一些附加功能,例如用戶權限的功能(提供了基礎的權限管理)、節點拓撲圖、文件管理等等。總的來講,本次更新將Crawlab打造得更加穩定和實用。後端

Crawlab截屏預覽

登陸

首頁

節點列表

節點拓撲圖

爬蟲列表

爬蟲概覽

爬蟲分析

爬蟲文件

任務詳情 - 抓取結果

定時任務

爲何沒有可配置爬蟲

很遺憾,因爲時間緊張,沒有將可配置爬蟲移植到新版Crawlab上。可是咱們後面會將該功能加入進來。微信

接下來的計劃

  • [ ] 日誌管理,更加中心化的日誌管理
  • [ ] 其餘SQL數據庫支持,支持儲存結果爲MySQL、Postgres等主流數據庫
  • [ ] 可配置爬蟲
  • [ ] 異常監控,日誌錯誤異常,零值異常等
  • [ ] 統計數據可視化,更多圖表功能

不過,若是您有更好的idea,歡迎隨時提需求。框架

社區

若是您以爲Crawlab對您的平常開發或公司有幫助,請加做者微信 tikazyq1 並註明"Crawlab",做者會將你拉入羣。歡迎在Github上進行star,以及,若是遇到任何問題,請隨時在Github上提issue。另外,歡迎您對Crawlab作開發貢獻。scrapy

相關文章
相關標籤/搜索