1. 程式人生 > >部署爬蟲

部署爬蟲

  • 安裝scrapyd: pip install scrapyd

  • 安裝scrapyd-client : pip install scrapyd-client

  • 安裝curl:[安裝地址](http://ono60m7tl.bkt.clouddn.com/curl.exe),安裝完成以後將所在目錄配置到環境變數中

開始部署

  1. 修改scrapy專案目錄下的scrapy.cfg檔案,修改如下

[deploy:JD_Spider]    #加上target   :name
url = http://localhost:6800/   #將前面的#刪除
project = JD               #project的名字,可以使用預設的,當然也可以改變
  1. 在任意目錄下的開啟終端,輸入scrapyd,觀察是否執行成功,執行成功的話,就可以開啟http://localhost:6800看是否正常顯示,如果正常顯示則看到下面的這張圖,這裡的JD是部署之後才能看到的,現在是看不到的,所以沒出現也不要擔心:

scrapyd

  1. 在專案的根目錄下執行如下的命令:python E:\python2.7\Scripts\scrapyd-deploy target -p project,這裡的E:python2.7Scripts是你的python安裝目錄,Scripts是安裝目錄下的一個資料夾,注意前面一定要加上python,target是在前面scrapy.cfg中設定的deploy:JD_Spider,JD_Spider就是target,project 是JD,因此這個完整的命令是python E:\python2.7\Scripts\scrapyd-deploy JD_Spider -p JD

    ,現在專案就部署到上面了,這下網頁上就有JD了,詳情請見上圖

  2. 驗證是否成功,你可以在網頁上看有沒有顯示你的工程名字,另外在根目錄下輸入python E:\python2.7\Scripts\scrapyd-deploy -l就能列出你所有部署過的專案了

  3. 啟動爬蟲:curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider_name,這裡的project填入的是專案名,spider_name填入的是你的爬蟲中定義的name,執行我的例項完整的程式碼為:curl http://localhost:6800/schedule.json -d project=JD -d spider=spider

    ,這裡將會顯示如下資訊:

 
#這裡的jobid比較重要,下面會用到這個取消爬蟲
{"status": "ok", "jobid": "3013f9d1283611e79a63acb57dec5d04", "node_name": "DESKTOP-L78TJQ7"}
  1. 取消爬蟲:curl http://localhost:6800/cancel.json -d project=myproject -d job=jobid,jobid就是上面的提到過的,如果取消我的這個例項程式碼如:curl http://localhost:6800/cancel.json -d project=JD -d job=3013f9d1283611e79a63acb57dec5d04,那麼它的狀態就會變成如下:

{"status": "ok", "prevstate": "running", "node_name": "DESKTOP-L78TJQ7"}
  1. 列出專案:curl http://localhost:6800/listprojects.json,下面將會出現你已經部署的專案

  2. 刪除專案:curl http://localhost:6800/delproject.json -d project=myproject

  3. 列出版本:curl http://localhost:6800/listversions.json?project=myproject,這裡的project是專案的名字,是在scrapy.cfg設定的

  4. 列出爬蟲:curl http://localhost:6800/listspiders.json?project=myproject這裡的project是專案的名字,是在scrapy.cfg設定的

  5. 列出job:curl http://localhost:6800/listjobs.json?project=myproject這裡的project是專案的名字,是在scrapy.cfg設定的

  6. 刪除版本:curl http://localhost:6800/delversion.json -d project=myproject -d version=r99,這裡的version是自己的專案版本號,在刪除之前需要檢視版本號