【python3】基於scrapyd + scrapydweb 的可視化部署


 

一、部署組件概覽

 

      該部署方式適用於 scrapy項目、scrapy-redis的分布式爬蟲項目

      需要安裝的組件有:

     1、scrapyd  服務端 【運行打包后的爬蟲代碼】(所有的爬蟲機器都要安裝)    

   2、logparser 服務端  【解析爬蟲日志,配合scraoydweb做實時分析和可視化呈現】(所有的爬蟲機器都要安裝)         

   3、scrapyd-client  客戶端 【將本地的爬蟲代碼打包成 egg 文件】(只要本地開發機安裝即可)

   4、Scrapydweb  可視化web管理工具 【爬蟲代碼的可視化部署管理】(只要在一台服務器安裝即可,可以直接用爬蟲機器,這邊直接放在172.16.122.11)

 

二、各組件安裝步驟

  

      1、scrapyd  服務端 (所有的爬蟲機器都要安裝)         

    用途:運行打包后的爬蟲代碼,可以通過api調用訪問

           安裝命令: pip install scrapyd   

           修改配置: 安裝完成后,修改 default_scrapyd.conf ,文件路徑  /home/spider/workspace/env/lib/python3.6/site-packages/scrapyd

                              修改綁定地址,允許外部訪問;另外,建議修改以下相關的文件路徑 ,否則這些文件夾默認生成在 安裝路徑下;

           

      

           運行命令:nohup scrapyd > /dev/null & 

           訪問地址:http://172.16.122.11:6800/

       

 

      2、logparser 服務端 (所有的爬蟲機器都要安裝)         

    用途:解析爬蟲日志,配合scraoydweb做實時分析和可視化呈現

           安裝命令: pip install logparser 

           修改配置: 安裝完成后,修改 settings.py,文件路徑  /home/spider/workspace/env/lib/python3.6/site-packages/logparser     

                              將要解析的日志路徑修改為   scrapyd   的日志路徑                               

      運行命令:nohup logparser > /dev/null & 

 

      3、scrapyd-client  客戶端  (只要本地開發機安裝即可)

           用途:將本地的爬蟲代碼打包成 egg 文件

           安裝命令: pip install scrapyd-client

           修改配置: 安裝完后,執行 scrapyd-deploy  -h ,如果找不到命令,則單獨寫一個bat文件 scrapyd-deploy.bat 放到 script 目錄下即可

@echo off
D:\Anaconda3\python.exe D:\Anaconda3\Scripts\scrapyd-deploy %*

 

   

           

 

      4、Scrapydweb  可視化web管理工具(只要在一台服務器安裝即可,可以直接用爬蟲機器,這邊直接放在172.16.122.11)

      用途: 爬蟲代碼的可視化部署管理

           安裝命令: pip install Scrapydweb

           創建文件夾:mkdir scrapydweb; cd scrapydweb

           執行命令:scrapydweb (會在當前目錄下生成配置文件 scrapydweb_settings_v10.py)

           修改配置: scrapydweb_settings_v10.py    【另外,   修改data路徑時如果不會生效,那么同時要修改默認配置文件的data路徑,可能是個bug, 默認配置文件路徑: /home/spider/workspace/scrapydweb_env/lib/python3.6/site-packages/scrapydweb/default_settings.py 】           

 

 

 

   

           修改完配置文件后,再次執行 nohup scrapydweb  > /dev/null &

           訪問地址:http://172.16.122.11:5000

          

三、爬蟲代碼打包

       工具:scrapyd-client  (在上一步已安裝)

       打包命令:在工程目錄下執行,SP是工程名稱  scrapyd-deploy -p SP --build-egg=SP.egg 

       關於爬蟲代碼需要注意的事項和egg文件說明:

                 1. 打包后的egg文件其實就是爬蟲代碼編譯后的壓縮文件,所以比原來的代碼文件要小很多;

                 2. egg文件只打包了爬蟲代碼,不包含環境代碼,也就是說,在scrapyd服務端運行的時候,python環境需要先安裝好爬蟲運行所需的所有包;

                 3. 在工程代碼中,比如 setting 中最好不要有生成文件路徑的做法(比如默認生成日志文件夾),否則打包成egg后,上傳時可能會報錯;因為上傳的時候,也會在服務端編譯,這個時候就可能會出現 生成文件夾 的 權限報錯;

                 4. 如果想要使用 scrapydweb 的實時日志分析,那么在爬蟲代碼中,不要指定日志路徑,否則運行時,日志會寫到你指定的路徑而無法分析;不指定路徑,運行爬蟲時,日志會輸出到 scrapyd 預先設置好的 logs 里面,前面 logparser(日志解析服務)已經配置好 讀取該位置的日志,從而實現實時分析;

 

 

四、可視化管理Scrapydweb教程  

  

  1、部署工程(有兩種方式,方式1:是配置里面寫死路徑,自動打包;方式2:上傳打包好的egg文件;舉例為方式2 

     

 

   部署成功

 

             

  2、運行爬蟲,啟動一次爬蟲就是一個作業,會自動分配一個作業號;后續可以根據這個作業號,查看作業情況

 

   爬蟲啟動成功

   查看所有爬蟲服務器的作業隊列

   查看作業報告 

  

  3、作業相關(查看歷史作業情況)

    日志分析

 

  

  4、增加定時作業,具體的操作和運行爬蟲一樣,無非就是多個時間的設置

 

  5、還有其他的一些功能,上傳本地日志進行分析;設置郵件之類的,有興趣的再自行摸索

  


免責聲明!

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



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