scrapyd遠程部署到阿里云服務器

scrapyd

Scrapyd 是一個運行 Scrapy 爬蟲的服務程序式散,它提供一系列 HπP 接口來幫助我們部署筋遭、啟動、 停止暴拄、刪除爬蟲程序漓滔。 Scrapyd 支持版本管理, 同時還可以管理多個爬蟲任務乖篷,利用它我們可以非常 方便地完成 Scrapy 爬蟲項目的部署任務調(diào)度响驴。

如果不使用分布式部署

1.如果采用上傳文件的方式部署代碼,我們首先將代碼壓縮撕蔼,然后采用 SFTP 或 FTP 的方式將 文件上傳到服務器豁鲤,之后再連接服務器將文件解壓,每個服務器都需要這樣配置鲸沮。

2.如果采用 Git 同步的方式部署代碼琳骡,我們可以先把代碼 Push 到某個 Git倉庫里,然后再遠程連 接各臺主機執(zhí)行 Pull 操作讼溺,同步代碼楣号,每個服務器同樣需要做一次操作。

scrapyd部署就很好的解決了這個問題

一怒坯,安裝

本地需要安裝scrapyd炫狱,scrapyd-client,curl

Scrapyd 的功能

Scrapyd 提供了一系列 HTTP 接口來實現(xiàn)各種操作剔猿。 用curl進行執(zhí)行

Scrapyd-Client 為了方便 Scrapy 項目的部署

將項目打包成 Egg 文件视译。

將’打包生成的 Egg 文件通過 addversion.json 接口部署到 Scrapyd 上。

在安裝scrapyd-client模塊是專門打包scrapy爬蟲項目到scrapyd服務中的归敬,進入虛擬環(huán)境酷含,執(zhí)行命令pip install scrapyd-client鄙早,安裝完成后,在虛擬環(huán)境的scripts中會出現(xiàn)scrapyd-deploy無后綴文件第美,這個scrapyd-deploy無后綴文件是啟動文件蝶锋,

在Linux系統(tǒng)下可以遠行陆爽,

在windows下是不能運行的什往,所以我們需要編輯一下使其在windows可以運行。新建一個scrapyd-deploy.bat文件慌闭,右鍵選擇編輯别威,輸入以下配置,注意:兩個路徑之間是空格

@echooffC:\Users\Faye\Envs\scrapy\Scripts\python C:\Users\Faye\Envs\scrapy\Scripts\scrapyd-deploy %*

image.png

在項目目錄下運行驴剔,這樣就顯示可以使用了省古。

curl命令的安裝

下邊這是個安裝方法,選擇對應版本然后配置環(huán)境變量就可以了

參考文檔:https://cloud.tencent.com/developer/news/359375

遠程服務器需要安裝:scrapyd

1.安裝完scrapyd丧失,需要允許任何IP遠程連接服務器豺妓,需要更改bind-ip。將默認的127.0.0.1改為0.0.0.0

配置文件位置:(需要根據(jù)個人虛擬環(huán)境配置的位置做相應改變)

vim /root/.virtualenvs/scrapy/lib/python3.5/site-packages/scrapyd/default_scrapyd.conf

image.png

重啟服務器布讹,開啟服務琳拭,然后在本地瀏覽器訪問試試。

2.瀏覽器訪問scrapyd訪問服務器錯誤

clipboard.png

原因Twisted版本與scrapy不匹配描验,回退版本

Scrapy==1.6.0 Twisted==18.9.0

pip install twisted==18.9.0

參考博客:https://blog.csdn.net/qq_29719097/article/details/89431234

二白嘁,本地訪問服務器

服務器開啟scrapyd服務

image.png

本地瀏覽器訪問訪問服務器

http://公網(wǎng)IP:6800

image.png

再點jobs

clipboard.png

三,部署scrapy項目

在scrapy項目目錄下膘流,有一個scrapy.cfg的配置文件:

image.png

把原先注釋掉的url那一行取消注釋絮缅,這個就是我們要部署到目標服務器的地址,

然后呼股,把[deploy]這里改為[deploy:demo]耕魄,這里是命名為demo,命名可以任意怎么都可以彭谁,只要能標識出來項目就可以屎开。

下邊的project 就是我們的工程名,到此配置文件更改完成马靠。

執(zhí)行打包命令: scrapyd-deploy 部署名稱 -p 項目名稱

scrapyd-deploy csdndeploy -p csdn-------------------運行結(jié)果------------------------------------Serverresponse(200):{"status":"ok","project":"csdn","spiders":1,"version":"1557761014","node_name":"iZhp3adenf04e7geqlzzgtZ"}

會在服務器生成三個文件目錄奄抽,使用xftp查看

image.png

curlhttp://localhost:6800/schedule.json-d project=項目名稱 -d spider=爬蟲名稱

curl http://39.104.xxx.xxx:6800/schedule.json -d project=csdn -d spider=csdn_spider------------------------運行結(jié)果------------------{"status":"ok","jobid":"d13cce92759411e9846a00163e005636","node_name":"iZhp3adenf04e7geqlzzgtZ"}

這是可以在本地流浪器查看爬蟲運行情況

四,命令

1. daemonstatus.json

這個接口負責查看Scrapyd當前的服務和任務狀態(tài)甩鳄。我們可以用命令來請求這個接口逞度,命令如下:

curl http://139.217.26.30:6800/daemonstatus.json

我們就會得到如下結(jié)果:

{"status":"ok", "finished":90, "running":9, "node_name":"datacrawl-vm", "pending":}

返回結(jié)果是JSON字符串,是當前運行狀態(tài)妙啃,代表當前已經(jīng)完成的Scrapy任務档泽,代表正在運行的Scrapy任務俊戳,代表等待被調(diào)度的Scrapyd任務,就是主機的名稱馆匿。

2. addversion.json

這個接口主要是用來部署Scrapy項目用的抑胎。我們首先將項目打包成Egg文件,然后傳入項目名稱和部署版本渐北。

我們可以用如下的方式實現(xiàn)項目部署:

curlhttp://120.27.34.25:6800/addversion.json -F project=wenbo -F version=first -F egg=@weibo.egg

在這里阿逃,? 代表添加一個參數(shù),同時我們還需要將項目打包成Egg文件放到本地赃蛛。

發(fā)出請求之后恃锉,我們可以得到如下結(jié)果:

{"status":"ok", "spiders":3}

這個結(jié)果表明部署成功,并且Spider的數(shù)量為3呕臂。

此部署方法可能比較煩瑣破托,后文會介紹更方便的工具來實現(xiàn)項目的部署。

3. schedule.json

這個接口負責調(diào)度已部署好的Scrapy項目運行歧蒋。

我們可以用如下接口實現(xiàn)任務調(diào)度:

curl http://120.27.34.25:6800/schedule.json -d project=weibo -d spider=weibocn

這里需要傳入兩個參數(shù)土砂,即Scrapy項目名稱,即Spider名稱谜洽。

返回結(jié)果如下:

{"status":"ok", "jobid":"6487ec79947edab326d6db28a2d86511e8247444"}

代表Scrapy項目啟動情況萝映,代表當前正在運行的爬取任務代號。

4. cancel.json

這個接口可以用來取消某個爬取任務褥琐。如果這個任務是狀態(tài)锌俱,那么它將會被移除;如果這個任務是狀態(tài)敌呈,那么它將會被終止贸宏。

我們可以用下面的命令來取消任務的運行:

curl http://120.27.34.25:6800/cancel.json -d project=weibo -d job=6487ec79947edab326d6db28a2d86511e8247444

這里需要傳入兩個參數(shù),即項目名稱磕洪,即爬取任務代號吭练。

返回結(jié)果如下:

{"status":"ok", "prevstate":"running"}

代表請求執(zhí)行情況,代表之前的運行狀態(tài)析显。

5. listprojects.json

這個接口用來列出部署到Scrapyd服務上的所有項目描述鲫咽。

我們可以用如下命令來獲取Scrapyd服務器上的所有項目描述:

curl http://120.27.34.25:6800/listprojects.json

這里不需要傳入任何參數(shù)。

返回結(jié)果如下:

{"status":"ok", "projects":["weibo","zhihu"]}

代表請求執(zhí)行情況谷异,是項目名稱列表分尸。

6. listversions.json

這個接口用來獲取某個項目的所有版本號,版本號是按序排列的歹嘹,最后一個條目是最新的版本號箩绍。

我們可以用如下命令來獲取項目的版本號:

curl http://120.27.34.25:6800/listversions.json?project=weibo

這里需要一個參數(shù),即項目的名稱尺上。

返回結(jié)果如下:

{"status":"ok", "versions":["v1","v2"]}

代表請求執(zhí)行情況材蛛,是版本號列表圆到。

7. listspiders.json

這個接口用來獲取某個項目最新版本的所有Spider名稱。

我們可以用如下命令來獲取項目的Spider名稱:

curl http://120.27.34.25:6800/listspiders.json?project=weibo

這里需要一個參數(shù)卑吭,即項目的名稱芽淡。

返回結(jié)果如下:

{"status":"ok", "spiders":["weibocn"]}

代表請求執(zhí)行情況,是Spider名稱列表豆赏。

8. listjobs.json

這個接口用來獲取某個項目當前運行的所有任務詳情挣菲。

我們可以用如下命令來獲取所有任務詳情:

curl http://120.27.34.25:6800/listjobs.json?project=weibo

這里需要一個參數(shù),即項目的名稱河绽。

返回結(jié)果如下:

{"status":"ok",

"pending":[{"id":"78391cc0fcaf11e1b0090800272a6d06", "spider":"weibocn"}],

"running":[{"id":"422e608f9f28cef127b3d5ef93fe9399", "spider":"weibocn", "start_time":"2017-07-12 10:14:03.594664"}],

"finished":[{"id":"2f16646cfcaf11e1b0090800272a6d06", "spider":"weibocn", "start_time":"2017-07-12 10:14:03.594664", "end_time":"2017-07-12 10:24:03.594664"}]}

代表請求執(zhí)行情況己单,代表當前正在等待的任務唉窃,代表當前正在運行的任務耙饰,代表已經(jīng)完成的任務。

9. delversion.json

這個接口用來刪除項目的某個版本纹份。

我們可以用如下命令來刪除項目版本:

curl http://120.27.34.25:6800/delversion.json -d project=weibo -d version=v1

這里需要一個參數(shù)苟跪,即項目的名稱,還需要一個參數(shù)蔓涧,即項目的版本件已。

返回結(jié)果如下:

{"status":"ok"}

代表請求執(zhí)行情況,這樣就表示刪除成功了元暴。

10. delproject.json

這個接口用來刪除某個項目篷扩。

我們可以用如下命令來刪除某個項目:

curl http://120.27.34.25:6800/delproject.json -d project=weibo

這里需要一個參數(shù),即項目的名稱茉盏。

返回結(jié)果如下:

{"status":"ok"}

代表請求執(zhí)行情況鉴未,這樣就表示刪除成功了。

以上接口是Scrapyd所有的接口鸠姨。我們可以直接請求HTTP接口铜秆,即可控制項目的部署、啟動讶迁、運行等操作连茧。

作者:飛吧_5966

鏈接:http://www.reibang.com/p/c7ef34fcf665

來源:簡書

簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處巍糯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啸驯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祟峦,更是在濱河造成了極大的恐慌罚斗,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀愧,死亡現(xiàn)場離奇詭異惰聂,居然都是意外死亡疆偿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門搓幌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杆故,“玉大人,你說我怎么就攤上這事溉愁〈︻酰” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵拐揭,是天一觀的道長撤蟆。 經(jīng)常有香客問我,道長堂污,這世上最難降的妖魔是什么家肯? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮盟猖,結(jié)果婚禮上讨衣,老公的妹妹穿的比我還像新娘。我一直安慰自己式镐,他們只是感情好反镇,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著娘汞,像睡著了一般歹茶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上你弦,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天惊豺,我揣著相機與錄音,去河邊找鬼鳖目。 笑死扮叨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的领迈。 我是一名探鬼主播彻磁,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狸捅!你這毒婦竟也來了衷蜓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尘喝,失蹤者是張志新(化名)和其女友劉穎磁浇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朽褪,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡置吓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年无虚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衍锚。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡友题,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出戴质,到底是詐尸還是另有隱情度宦,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布告匠,位于F島的核電站戈抄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏后专。R本人自食惡果不足惜划鸽,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望行贪。 院中可真熱鬧漾稀,春花似錦模闲、人聲如沸建瘫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啰脚。三九已至,卻和暖如春实夹,著一層夾襖步出監(jiān)牢的瞬間橄浓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工亮航, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荸实,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓缴淋,卻偏偏與公主長得像准给,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子重抖,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • scrapyd Scrapyd 是一個運行 Scrapy 爬蟲的服務程序露氮,它提供一系列 HπP 接口來幫助我們部署...
    飛吧_5966閱讀 1,377評論 0 2
  • 什么是Scrapyd Scrapyd是什么 Scrapyd是部署和運行Scrapy.spider的應用程序。它使您...
    Yo_3ba7閱讀 1,047評論 0 1
  • scrapyd是一個用于部署和運行scrapy爬蟲的程序钟沛,它允許你通過JSONAPI來部署爬蟲項目和控制爬蟲運行 ...
    拾柒丶_8257閱讀 3,410評論 0 3
  • 之前用scrapy爬取了知乎用戶數(shù)據(jù)畔规,由于數(shù)據(jù)量很大,便考慮采取分布式提升爬取效率恨统,便有的此文叁扫。爬蟲源碼為http...
    最好時刻閱讀 1,777評論 0 0
  • 許久三妈,未在這個地方待過 如果身處這座大山里 我希望能很快逃離 但,如果我在山外莫绣,佇望那里 還會留有希望沈跨,憧憬美好 ...
    X_lei閱讀 258評論 2 1