一、部署組件概覽
該部署方式適用於 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、還有其他的一些功能,上傳本地日志進行分析;設置郵件之類的,有興趣的再自行摸索