分佈式爬蟲的部署之Gerapy分佈式管理

咱們能夠經過Scrapyd-Client將Scrapy項目部署到Scrapyd上,而且能夠經過Scrapyd API來控制Scrapy的運行。那麼,咱們是否能夠作到更優化?方法是否能夠更方即可控?
git

咱們從新分析一下當前能夠優化的問題。github

  • 使用Scrapyd-Client部署時,須要在配置文件中配置好各臺主機的地址,而後利用命令行執行部署過程。若是咱們省去各臺主機的地址配置,將命令行對接圖形界面,只須要點擊按鈕便可實現批量部署,這樣就更方便了。數據庫

  • 使用Scrapyd API能夠控制Scrapy任務的啓動、終止等工做,但不少操做仍是須要代碼來實現,同時獲取爬取日誌還比較煩瑣。若是咱們有一個圖形界面,只須要點擊按鈕便可啓動和終止爬蟲任務,同時還能夠實時查看爬取日誌報告,那這將大大節省咱們的時間和精力。瀏覽器

因此咱們的終極目標是以下內容。bash

  • 更方便地控制爬蟲運行;框架

  • 更直觀地查看爬蟲狀態;分佈式

  • 更實時地查看爬取結果;優化

  • 更簡單地實現項目部署;spa

  • 更統一地實現主機管理。命令行

上述全部的工做都可經過Gerapy來實現。

Gerapy是一個基於Scrapyd、Scrapyd API、Django、Vue.js搭建的分佈式爬蟲管理框架。接下來將簡單介紹它的使用方法。

1、準備工做

請確保已經正確安裝好了Gerapy。

2、使用說明

利用gerapy命令新建一個項目,命令以下:

gerapy init複製代碼

在當前目錄下生成一個gerapy文件夾。進入gerapy文件夾,會發現一個空的projects文件夾,後文會說起。

這時先對數據庫進行初始化:

gerapy migrate複製代碼

這樣會生成一個SQLite數據庫,數據庫保存各個主機配置信息、部署版本等。

啓動Gerapy服務,命令以下:

gerapy runserver複製代碼

這樣便可在默認8000端口上開啓Gerapy服務。咱們用瀏覽器打開:http://localhost:8000,便可進入Gerapy的管理頁面,這裏提供了主機管理和項目管理的功能。

在主機管理中添加各臺主機的Scrapyd運行地址和端口,並加以名稱標記。以後各臺主機便會出如今主機列表中。Gerapy會監控各臺主機的運行情況並加以不一樣的狀態標識,以下圖所示。

剛纔咱們提到在gerapy目錄下有一個空的projects文件夾,它就是存放Scrapy目錄的文件夾。若是想要部署某個Scrapy項目,只須要將該項目文件放到projects文件夾下便可。

這裏我放了兩個Scrapy項目,以下圖所示。

從新回到Gerapy管理界面,點擊項目管理,便可看到當前項目列表,以下圖所示。

因爲此處有過打包和部署記錄,這裏分別予以顯示。

Gerapy提供了項目在線編輯功能。點擊編輯,便可可視化地對項目進行編輯,以下圖所示。

若是項目沒有問題,能夠點擊部署進行打包和部署。部署以前須要打包項目,打包時能夠指定版本描述,以下圖所示。

打包完成以後,直接點擊部署按鈕便可將打包好的Scrapy項目部署到對應的雲主機上,同時也能夠批量部署,以下圖所示。

部署完畢以後就能夠回到主機管理頁面進行任務調度。點擊調度便可進入任務管理頁面,能夠查看當前主機全部任務的運行狀態,以下圖所示。

咱們經過點擊新任務、中止等按鈕來實現任務的啓動和中止等操做,同時也能夠經過展開任務條目查看日誌詳情,以下圖所示。

這樣咱們就能夠實時查看到各個任務運行狀態。

以上內容即是Gerapy功能的簡單介紹。經過Gerapy,咱們能夠更加方便地管理、部署和監控Scrapy項目,尤爲是對分佈式爬蟲來講,使用Gerapy會更加方便。

更多信息能夠查看Gerapy的GitHub地址:https://github.com/Gerapy。

3、結語

本節咱們介紹了Gerapy的簡單用法,利用它咱們能夠方便地實現Scrapy項目的部署、管理等操做,能夠大大提升效率。

相關文章
相關標籤/搜索