用scrapy框架寫了一個爬蟲項目稠炬,想發(fā)布到線上讓他自動執(zhí)行点额,搜索了一下,發(fā)現(xiàn)有個叫scrapinghub的平臺洁灵,可以免費發(fā)布scrapy項目饱岸,所以就來試一下。
注冊scrapinghub賬號并登陸
直接打開scrapinghub注冊徽千,這里沒什么說的苫费。
可以直接用Google賬號或者GitHub賬號登陸,我就選擇GitHub登陸啦~
登錄之后是這樣的双抽,是空的百框,沒有項目:
我們點擊右上角的Create Project來創(chuàng)建一個Project,這里和GitHub類似荠诬。
創(chuàng)建空的項目
這里Organization已經(jīng)填好了琅翻,用GitHub賬號登陸的話,這里就是你的GitHub昵稱柑贞,其他賬號登錄的應(yīng)該類似方椎。
Name這里就隨便填寫一個名稱就好了,主要是為了方便以后的project管理钧嘶。
項目類型就選Scrapy棠众,那個Portia我還沒去了解它到底是干啥的。弄好了之后就點Create有决。
創(chuàng)建好了之后闸拿,我們會得到一個空的project,里面是沒有代碼的书幕,接下來需要將寫好的scrapy爬蟲放進去新荤,這里和GitHub里面往倉庫里面提交代碼類似。
準備發(fā)布
點擊那個Code & Deploys台汇,到發(fā)布頁面苛骨。這里有兩種發(fā)布方式可供選擇:
- 第一種方式
在你的pycharm中安裝shub庫篱瞎,這是一個用于發(fā)布scrapy項目到scrapinghub的庫⊙髦ィ或者你可以直接在命令行中使用pip install shub命令來安裝俐筋,這里我選擇方便的pycharm。
可能有的小伙伴不知道pycharm有如此方便的三方庫管理功能严衬。
打開項目下的pycharm命令行澄者,如果你的項目不是在pycharm中構(gòu)建的也沒關(guān)系,可以在系統(tǒng)命令行中切換到項目目錄中執(zhí)行相關(guān)命令请琳。
使用shub login命令進行登陸粱挡,這里會讓你輸入API key,你可以在這里找到你的API key:
然后復(fù)制俄精,粘貼到命令行就ok了抱怔。
在發(fā)布之前還有一個需要注意的地方:
如果你的項目中使用了scrapy之外的第三方庫,則需要在項目中進行聲明嘀倒,這樣scrapinghub才會為你的項目添加相應(yīng)的第三方庫。聲明的過程很簡單局冰,在你的項目根目錄下添加requirements.txt文件测蘑,并列出你所需要額外添加的第三方庫,類似下面這樣康二,寫清楚你需要的三方庫名稱和版本碳胳。
再新建一個scrapinghub.yml文件,里面是這樣的:
這個大家應(yīng)該知道是做什么的沫勿。其實這個文件在發(fā)布項目的時候可以自動生成挨约,但是如果你的爬蟲需要依賴一些scrapinghub所沒有的三方庫的時候,還是最好自己手動新建一個产雹,如果你懶得自己建的話诫惭,可以先發(fā)布項目,生成了scrapinghub.yml文件之后蔓挖,再去編輯它夕土,當(dāng)然scrapinghub會默認提供一部分常用的第三方庫,不需要手動聲明瘟判。
確認無誤之后怨绣,就可以用shub deploy [project id]命令進行發(fā)布了。
project id可以在你的網(wǎng)頁地址欄中找到:
細心的同學(xué)可以看到發(fā)布項目的步驟和命令已經(jīng)在頁面的右下方寫出來了拷获,如果看不懂的話還有貼心的視頻教程篮撑。
發(fā)布成功之后:
回到瀏覽器中刷新一下頁面就看到項目中已經(jīng)有代碼了(請自動忽略shub的更新提示,如果你的shub版本是最新的匆瓜,就不會出現(xiàn)這個提示)赢笨。
- 2.從GitHub發(fā)布
接下來我們來說一說怎么從GitHub發(fā)布未蝌。
把選項卡切換到GitHub,你會發(fā)現(xiàn)是這樣的:
點connect一步步操作质欲,建立與GitHub的連接树埠。
這里要選擇你的scrapy項目所在的倉庫,然后點擊Connect repo建立連接嘶伟。
然后點擊綠色的發(fā)布分支按鈕就可以了怎憋,發(fā)布成功之后會顯示和之前從本地發(fā)布一樣的頁面,這里不再贅述九昧。
項目管理
發(fā)布成功之后回到主面板绊袋,點擊項目名稱進入到項目管理頁面。
看到右上角那個綠色的run按鈕了沒铸鹰,點它癌别,你的spider就在scrapinghub上運行起來了,完全不需要自己去架設(shè)服務(wù)器蹋笼。
并且在下面可以看到爬蟲的運行日志展姐。如果你有多個爬蟲,可以在scrapy的配置文件中聲明爬蟲的優(yōu)先級剖毯,scrapinghub會按照優(yōu)先級順序依次執(zhí)行圾笨。并且會根據(jù)當(dāng)前的狀態(tài),分類列出你的爬蟲任務(wù)逊谋。
定時執(zhí)行
scrapinghub還有一個強大的功能就是定時執(zhí)行爬蟲任務(wù)擂达,一般我們的需求就是每天定時爬取某個站點來獲取更新的數(shù)據(jù),剛好定時任務(wù)就派上用場了胶滋。
在scrapinghub中創(chuàng)建定時任務(wù)也非常的簡單板鬓。
在菜單欄左側(cè)點擊Periodic Jobs,就進入到定時任務(wù)面板了究恤。
點擊綠色的Add Periodic job按鈕:
選擇你需要定時執(zhí)行的spider名稱俭令,在Priority中選擇執(zhí)行任務(wù)的優(yōu)先級,在右邊的時間設(shè)置面板中設(shè)置你要執(zhí)行的時間部宿,點save保存唤蔗,這樣一個定時的spider就創(chuàng)建好了,你就什么都不用關(guān)了窟赏,就每天從數(shù)據(jù)中取數(shù)據(jù)就完了妓柜。
當(dāng)然還有一些高級用法,比如添加參數(shù)什么的涯穷,就靠大家自己摸索了棍掐。
最后
如果你的爬蟲需要更新,就改完代碼重新發(fā)布一遍就可以了拷况。還有其他很多好用的功能作煌,大家可以多多探索掘殴。