scrapy抓取拉勾網職位信息(八)——使用scrapyd對爬蟲進行部署

上篇咱們實現了分佈式爬取,本篇來講下爬蟲的部署。html


 

分析:咱們上節實現的分佈式爬蟲,須要把爬蟲打包,上傳到每一個遠程主機,而後解壓後執行爬蟲程序。這樣作運行爬蟲也能夠,只不過若是之後爬蟲有修改,須要從新修改好代碼後,從新打包上傳而後執行(固然你願意每臺登上去後修改代碼也行)。本篇咱們使用scrapd來進行部署。python


 

使用scrapyd來部署爬蟲大致只須要幾步:json

  1. 在須要運行爬蟲的主機上安裝scrapyd,而且啓動scrapyd服務
  2. 使用scrapy-client把項目打包成egg文件,部署到scrapyd服務
  3. 使用scrapyd提供的網絡API來對爬蟲進行操做,包括啓動爬蟲、中止爬蟲等操做。

 

1、安裝相關的庫

pip install scrapyd  (須要運行爬蟲的主機都要安裝)vim

pip install scrapyd-client (本機主機安裝便可,做用是爲了把爬蟲項目部署到遠程主機的scrapyd去)api

2、修改scrapyd配置文件

[root@kongqing /]# whereis scrapyd
scrapyd: /etc/scrapyd /root/.pyenv/shims/scrapyd
[root@kongqing /]# cd /etc/scrapyd
[root@kongqing scrapyd]# ls
scrapyd.conf
[root@kongqing scrapyd]# vim scrapyd.conf

bind_address=0.0.0.0 #修改成0.0.0.0可使用其餘任意主機進行鏈接

3、啓動scrapyd,直接命令行輸入scrapyd(這樣就啓動了一個網絡的監聽,端口默認是6800)

4、使用本機瀏覽器打開47.98.xx.xx:6800  (前面換成本身安裝好scrapyd的遠程主機IP地址)


 

解釋一波:瀏覽器

  • jobs表明的就是爬蟲項目
  • logs表明的是日誌文件,也就是你爬蟲運行時顯示的那些信息
  • Documentation這個指的scrapyd的文檔,教你對爬蟲項目進行啓停等操做的

固然,目前裏面尚未項目,因此jobs、logs裏面都是空的。服務器


 

5、修改本地爬蟲文件scrapy.cfg文件(前面解釋過,這個文件是用來作爬蟲部署用的)

[settings]
default = lagou.settings  

[deploy]
#url = http://localhost:6800/  #本地的直接能運行,我就不改了
project = lagou

[deploy:aliyun]  #:後面是別名,本身設置,用來識別部署的是哪臺設備,避免弄混
url = http://47.98.xx.xx:6800/ #遠程主機的地址及端口
project = lagou

6、使用scrapyd_client將項目部署到遠程主機

  • 在scrapy.cfg文件所在目錄打開cmd命令行,(地址欄輸入cmd,或者shift+右鍵打開)

  •  執行部署命令scrapyd-deploy aliyun --version 201812010050 

 


 

解釋一波:網絡

  • 若是隻輸入命令scrapyd-deploy就是直接部署本機了,由於本機沒有跟別名
  • aliyun表明的是個人遠程主機,也就是scrapy.cfg文件中的[deploy:aliyun]這部分。建議你們加別名,方便識別管理。
  • --version是可選的,表明一個版本,後面的數字我是使用的當前時間,本身能夠根據須要設置。默認是時間戳,也就是不使用--version它也會默認給你生成一個版本信息。

 

  • 能夠看到,成功執行部署命令後,本地項目目錄多了兩個文件夾

7、使用scrapyd網絡API啓停爬蟲

打開API文檔看一下,咱們能夠看到有如下這些方法:curl

這裏只解釋兩個用法,其餘的本身看文檔。scrapy

shedule.json:運行一個爬蟲(會返回一個jobid),文檔示例用法以下:

$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider

cancel.json:中止一個爬蟲(須要有jobid),文檔示例用法以下:

$ curl http://localhost:6800/cancel.json -d project=myproject -d job=6487ec79947edab326d6db28a2d86511e8247444

 

如今咱們啓動咱們本身在遠程主機上的爬蟲項目。

  • 首先執行如下代碼:
curl http://47.98.xx.xx:6800/schedule.json -d project=lagou -d spider=lagou_c   #修改成本身的遠程主機IP,項目名是lagou,spider名字是lagou_c
  • 咱們用瀏覽器打開47.98.xx.xx:6800看下jobs,能夠看到有一個爬蟲在運行了

  • 注意到那個藍色的Log了麼,爬蟲的調試信息都在這裏,咱們點擊就能夠看到爬蟲運行時的信息了

  • 如今咱們中止這個爬蟲,使用命令
curl http://47.98.xx:xx/cancel.json -d project=lagou -d job=1aae6d70f51f11e8983600163e0403c8 (須要修改成本身的遠程主機IP,項目名稱,job就是以前運行時候的jobid
  • 咱們如今再到網頁裏看一下,顯示剛剛那個爬蟲已經中止了:

 

這樣咱們使用scrapyd就完成了爬蟲部署到遠程服務器的過程,若是你以爲使用網絡API調用的方式不習慣的話,也能夠用scrapyd_api來調用,不過須要生成egg文件,地址在這裏,有興趣的能夠嘗試。

相關文章
相關標籤/搜索