在公司裏面,除了會要寫爬蟲,還要會知道如何搭建爬蟲管理系統~
GitHub:https://github.com/scrapy/scrapyd
API 文檔:http://scrapyd.readthedocs.io/en/stable/api.html
安裝配置scrapyd
1、新建虛擬環境(方便管理),並在虛擬環境中安裝scrapy項目需要使用到的包。
mkvirtualenv scrapySpider
2、安裝scrapyd模塊,scrapyd模塊是專門用於部署scrapy項目的,可以部署和管理scrapy項目。
pip install scrapyd
3、輸入scrapyd啓動scrapyd服務、瀏覽器輸入127.0.0.1:6800 即可查看。
4、如果連接成功先關閉服務,新建一個文件夾,名稱自定義如:scrapydProject,進入該文件夾,shift+右鍵打開命令行工具,輸入scrapyd執行,執行完成後會新建一個dbs空文件夾,用來存放爬蟲項目的數據文件。
5、安裝scrapyd-client模塊。
Scrapyd-Client:GitHub:https://github.com/scrapy/scrapyd-client
scrapyd-client模塊是專門打包scrapy爬蟲項目到scrapyd服務中的,進入虛擬環境,執行命令pip install scrapyd-client,安裝完成後,在虛擬環境的scripts中會出現scrapyd-deploy無後綴文件,這個scrapyd-deploy無後綴文件是啓動文件。
6、進入虛擬環境,進入到你的爬蟲項目中,進入帶有scrapy.cfg文件的目錄,執行scrapyd-deploy,測試scrapyd-deploy是否可以運行,如果出現以下則正常
7、打開爬蟲項目中的scrapy.cfg文件,這個文件就是給scrapyd-deploy使用的,將url這行代碼解掉註釋,並且給設置你的部署名稱。
8、再次執行scrapyd-deploy -l 啓動服務,可以看到設置的名稱.
9、開始打包前,執行一個命令:scrapy list ,這個命令執行成功說明可以打包了,如果沒執行成功說明還有工作沒完成。
10、執行打包命令: scrapyd-deploy 部署名稱 -p 項目名稱
如:scrapyd-deploy bk -p baike
不用管,多提交幾次,直到你的egg文件夾中有項目即可
11、部署scrapy
curl http://localhost:6800/schedule.json -d project=項目名稱 -d spider=爬蟲名稱
可以去網頁中127.0.0.1:6800查看爬蟲運行狀態
12、停止爬蟲
curl http://localhost:6800/cancel.json -d project=項目名稱 -d job=運行ID
13、刪除scrapy項目
注意:一般刪除scrapy項目,需要先執行命令停止項目下在遠行的爬蟲
curl http://localhost:6800/delproject.json-d project=scrapy項目名稱
14、查看有多少個scrapy項目在api中
curl http://localhost:6800/listprojects.json
15、查看指定的scrapy項目中有多少個爬蟲
curl http://localhost:6800/listspiders.json?project=scrapy項目名稱
16、如果我們想用 Python 程序來控制一下呢?我們還要用 requests 庫一次次地請求這些 API ?這就太麻煩了吧,所以爲了解決這個需求,Scrapyd-API 又出現了,
GitHub:https://github.com/djm/python-scrapyd-api
有了它我們可以只用簡單的 Python 代碼就可以實現 Scrapy 項目的監控和運行
from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI('http://localhost:6800')
scrapyd.list_jobs('project_name')
返回結果:
{
'pending': [
],
'running': [
{
'id': u'14a65...b27ce',
'spider': u'spider_name',
'start_time': u'2018-01-17 22:45:31.975358'
},
],
'finished': [
{
'id': '34c23...b21ba',
'spider': 'spider_name',
'start_time': '2018-01-11 22:45:31.975358',
'end_time': '2018-01-17 14:01:18.209680'
}
]
}
Gerapy
但這還不是最簡單,面對這樣枯燥的輸入命令行部署,沒有做到程序員應有的樣子,所以Gerapy 就是爲此而生的,它可以從 Scrapy 的部署、啓動到監控、日誌查看,讓我們只需要鼠標鍵盤點幾下就可以完成,甚至連 Scrapy 代碼都可以幫你自動生成。
Gerapy - GitHub:https://github.com/Gerapy/Gerapy。
Gerapy具體安裝配置及操作,可翻看下篇:https://blog.csdn.net/weixin_42277380/article/details/99547174