Scrapyd + Gerapy部署搭建爬蟲管理系統(上)

在公司裏面,除了會要寫爬蟲,還要會知道如何搭建爬蟲管理系統~


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章