Scrapyd+Gerapy部署Scrapy爬蟲進行可視化管理


Scrapy是一個流行的爬蟲框架,利用Scrapyd,可以將其部署在遠程服務端運行,並通過命令對爬蟲進行管理,而Gerapy為我們提供了精美的UI,可以在web頁面上直接點擊操作,管理部署在scrapyed上的爬蟲,本文介紹 Scrapyd與Gerapy的基本安裝與使用方法
 
一、Scrapyd簡介:
  Scrapyd是一個服務,允許用戶將爬蟲部署在服務端,並通過HTTP JSON的方式控制爬蟲,並且可以通過web頁面監控爬蟲狀態
二、Scrapyd安裝部署:
  在向服務器部署爬蟲時,我們需要下載2個模塊
  1、scrapyd(安裝在服務端,運行服務)
  2、scrapy-client(安裝在客戶端,用於將自己的爬蟲部署到服務器上)
  • 服務端安裝部署
    首先在遠程的Ubuntu服務器上安裝scrapyd:
    pip install scrapyd
    安裝完畢后,查看scrapyd的配置文件,scrapyd會在如下位置依次查找配置文件,並以最后一個找到的配置文件為准進行配置
    /etc/scrapyd/scrapyd.conf (Unix)
    c:\scrapyd\scrapyd.conf (Windows)
    /etc/scrapyd/conf.d/* (in alphabetical order, Unix)
    scrapyd.conf
    ~/.scrapyd.conf (users home directory)
    查看scrapyd的安裝目錄  */site-packages/scrapyd,發現有一個default_scrapyd.conf默認配置文件,打開該文件,顯示如下內容
    這里有一個名為bind_address的選項,默認值為127.0.0.1,我們將其改為0.0.0.0在服務器中,0.0.0.0指的是本機上的所有IPV4地址,如果一個主機有多個IP地址,並且該主機上的一個服務監聽的地址是0.0.0.0,那么通過多個ip地址都能夠訪問該服務。
 
    配置完畢后輸入 Scrapyd &啟動后台服務
    此時輸入 netstat -an | grep 6800查看,發現6800端口已經啟動監聽
    隨后,打開瀏覽器,輸入 服務端地址:6800,顯示如下頁面,配置成功

 

    不過,此時,我們發現頁面中的Available projects一行為空,這是因為我們還沒有部署任何Scrapy爬蟲項目,接下來,我們要將客戶端的Scrapy項目部署到服務器上運行
 
  • 客戶端安裝部署
     pip install scrapy-client
    執行完畢后,找到scrapy-client的安裝目錄,發現一個名為 scrapyd-deploy的文件,我們把它復制到scrapy項目中與scrapy.cfg同級的目錄中(不復制也可以,但這樣操作會方便一點)
    打開scrapy.cfg文件,有如下內容,需要做的就是把[deploy]改為 [deploy:target]的形式,target名稱自擬,然后再把url前的注釋去掉,並且將地址改為scrapyd的服務器地址。
    修改完畢后,我們需要用剛剛復制來的scrapyd-deploy來部署爬蟲,打開scrapyd-deploy文件,找到如下部分,給出了scrapyd-deploy可以接收的參數以及相應的作用
 
    我們發現輸入-l可以列出所有可用的target,由於scrapyd-deploy本身是一個python文件,因此我們輸入
     python scrapyd-deploy -l來查看target的配置情況
    
    查看結果與剛才在scrapy.cfg文件中的配置相同。
    隨后輸入 python scrapyd-deploy -L test來查看名為test的target下可用的爬蟲項目
    同樣與配置相符
 
    隨后我們輸入python scrapy-deploy test -p toolspider 將test中的toolspider項目部署到scrapyd服務端

    出現以上信息,代表部署成功,此時打開 服務器地址:6800 這個頁面,發現Available projects中已經有了我們剛剛部署的toolspider項目
    

 

 
三、使用Scrapyd管理爬蟲
 
  Scrapyd采用http與json的方式管理爬蟲,下面來看一下具體的用法
  1、執行爬蟲
    執行爬蟲用到的是schedule.json,通過向 http://localhost:6800/schedule.json提交post請求並附帶項目名以及爬蟲名參數完成
    在服務端輸入 curl http://localhost:6800/schedule.json -d project=toolspider -d spider=toolspider執行剛才部署的爬蟲(d表示data,即post請求提交的數據),執行完畢后返回如下結果
    此時再查看瀏覽器,Scrapyd頁面,點擊Jobs,出現如下信息,爬蟲執行完畢
    

 

  2、查看項目
    查看項目用到的是listprojects.json,此方法采用get方式提交,不接受參數,可以直接在瀏覽器端提交並查看返回結果
    
    同樣,在服務端輸入 curl http://localhost:6800/schedule.json也可以得到結果
    查看項目中的爬蟲,用到的是listspider.json,同樣也是get方法,接受一個project參數,即具體項目名,效果如圖
    
  3、刪除項目
    刪除項目用到的是delproject.json,采用post方法,提交一個項目名稱的數據
    在服務端輸入 curl http://localhost:6800/schedule.json -d project=toolspider即可刪除
  4、其他
    除此之外還有daemonstatus.json,addversion.json,listversions.json,delversion.json,cancel.json,listjobs.json,具體使用方法可以查看scrapyd官方文檔 https://scrapyd.readthedocs.io/en/stable/
 
四、采用Gerapy管理爬蟲
  scrapyd采用命令行的形式,通過http與json對爬蟲進行管理,操作顯得有些繁瑣,對爬蟲的狀態展示也不直觀,而Gerapy為我們提供了精美的UI與簡介的操作方式,只需要用鼠標在瀏覽器上點擊操作便可以完成對爬蟲的管理,需要注意的是,Gerapy只為我們提供了操作界面,真正的爬蟲還是部署在服務器的Scrapyd上,
  1、Gerapy下載
    pip install gerapy
    下載完成后在命令行中輸入gerapy,出現如下信息說明安裝成功
  2、Gerapy初始化
    gerapy init
    cd gerapy
    gerapy migrate
    在命令行中輸入gerapy init,執行完畢后在當前目錄下會生成一個名稱為gerapy的文件夾,隨后進入該文件夾,下輸入gerapy migrate ,成功后在gerapy目錄下生成一個sqlite數據庫
 
  3、運行Gerapy
    gerapy runserver
    出現如下信息表示執行成功
    隨后在瀏覽器中輸入127.0.0.1:8000打開gerapy界面如圖,我這里已經配置了一台遠程服務器,因此normal顯示為1

 

    點擊左側的Client,隨后在Client界面的右上角點擊create創建遠程主機
    輸入Scrapyd服務器的ip與端口(6800),自己隨便起個名字,完成配置,結果顯示如下

 

    要執行爬蟲,直接點擊右側的schedule便可以顯示出當前項目中的所有爬蟲信息,點擊run按鈕便可直接運行爬蟲,並實時在頁面上顯示狀態
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM