《Learning Scrapy》(中文版)第6章 Scrapinghub部署


序言
第1章 Scrapy介紹
第2章 理解HTML和XPath
第3章 爬蟲基礎
第4章 從Scrapy到移動應用
第5章 快速構建爬蟲
第6章 Scrapinghub部署
第7章 配置和管理
第8章 Scrapy編程
第9章 使用Pipeline
第10章 理解Scrapy的性能
第11章(完) Scrapyd分布式抓取和實時分析


前面幾章中,我們學習了如何編寫爬蟲嚷节。編寫好爬蟲之后虎锚,我們有兩個選擇。如果是做單次抓取效斑,讓爬蟲在開發(fā)機上運行一段時間就行了柱徙。或者敌完,我們往往需要周期性的進行抓取羊初。我們可以用Amazon、RackSpace等服務商的云主機晦攒,但這需要一些設置得哆、配置和維護。這時候就需要Scrapinghub了贩据。

Scrapinghub是Scrapy高級開發(fā)者托管在Amazon上面的云架構闸餐。這是一個付費服務绎巨,但提供免費使用蠕啄。如果想短時間內讓爬蟲運行在專業(yè)戈锻、有維護的平臺上,本章內容很適合你哈街。

注冊拒迅、登錄、創(chuàng)建項目

第一步是在http://scrapinghub.com/注冊一個賬戶作箍,只需電子郵件地址和密碼前硫。點擊確認郵件的鏈接之后,就登錄了屹电。首先看到的是工作臺阶剑,目前還沒有任何項目牧愁,點擊+Service按鈕(1)創(chuàng)建一個:

將項目命名為properties(2)猪半,點擊Create按鈕(3)苍狰。然后點擊鏈接new(4)打開這個項目。

項目的工作臺是最重要的界面俐填。左側欄中可以看到一些標簽翔忽。Jobs和Spiders提供運行和爬蟲的信息盏檐。Periodic Jobs可以制定周期抓取胡野。其它四項,現在對我們不重要硫豆。

進入Settings(1)熊响。和許多網站的設置不同诗赌,Scrapinghub提供許多非常有用的設置項。

現在铭若,先關注下Scrapy Deploy(2)。

部署爬蟲并制定計劃

我們從開發(fā)機直接部署瞳腌。將Scrapy Deploy頁上的url復制到我們項目的scrapy.cfg中环鲤,替換原有的[depoly]部分。不必設置密碼吵冒。我們用第4章中的properties爬蟲作例子西剥。我們使用這個爬蟲的原因是,目標數據可以從網頁訪問揪阿,訪問的方式和第4章中一樣。開始之前南捂,我們先恢復原有的settings.py旧找,去除和Appery.io pipeline有關的內容:

提示:代碼位于目錄ch06。這個例子在ch06/properties中鞭缭。

$ pwd
/root/book/ch06/properties
$ ls
properties  scrapy.cfg
$ cat scrapy.cfg
...
[settings]
default = properties.settings
# Project: properties
[deploy]
url = http://dash.scrapinghub.com/api/scrapyd/
username = 180128bc7a0.....50e8290dbf3b0
password = 
project = 28814

為了部署爬蟲,我們使用Scrapinghub提供的shub工具岭辣,可以用pip install shub安裝。我們的開發(fā)機中已經有了仑濒。我們shub login登錄Scrapinghub搞动,如下所示:

$ shub login
Insert your Scrapinghub API key : 180128bc7a0.....50e8290dbf3b0
Success.

我們已經在scrapy.cfg文件中復制了API key渣刷,我們還可以點擊Scrapinghub右上角的用戶名找到API key。弄好API key之后箩溃,就可以使用shub deploy部署爬蟲了:

$ shub deploy
Packing version 1449092838
Deploying to project "28814"in {"status": "ok", "project": 28814,
"version":"1449092838", "spiders": 1}
Run your spiders at: https://dash.scrapinghub.com/p/28814/

Scrapy打包了所有爬蟲文件碌嘀,并上傳到了Scrapinghub。我們可以看到兩個新目錄和一個文件股冗,可以選擇刪除或不刪除。

$ ls
build project.egg-info properties scrapy.cfgsetup.py
$ rm -rf build project.egg-info setup.py

現在烹棉,如果我們在Scrapinghub點擊Spiders欄(1)怯疤,我們可以看到上傳的tomobile爬蟲:

如果我們點擊它(2)集峦,可以轉到爬蟲的工作臺。里面的信息很多塔淤,但我們要做的是點擊右上角的Schedule按鈕(3),在彈出的界面中再點擊Schedule(4)聪黎。

幾秒鐘之后妨马,Running Jobs欄會出現新的一行杀赢,再過一會兒脂崔,Requests和Items的數量開始增加梧喷。

提示:你或許不會限制抓取速度砌左。Scrapinghub使用算法估算在不被封的情況下汇歹,你每秒的最大請求數偿凭。

運行一段時間后,勾選這個任務(6)弯囊,點擊Stop(7)。

幾秒之后匾嘱,可以在Completed Jobs看到抓取結束。要查看抓取文件撬讽,可以點擊文件數(8)悬垃。

訪問文件
來到任務的工作臺。這里盗忱,可以查看文件(9),確認它們是否合格扇谣。我們還可以用上面的條件過濾結果闲昭。當我們向下翻動時,更多的文件被加載進來序矩。

如果有錯的話,我們可以在Items的上方找到有用的關于Requests和Log的信息(10)瓶蝴。用上方的面包屑路徑(11)可以返回爬蟲或項目主頁。當然舷手,可以點擊左上的Items按鈕(12)下載文件,選擇合適的選項(13)男窟,保存格式可以是CSV、JSON和JSON Lines牺六。

另一種訪問文件的方法是通過Scrapinghub的Items API。我們要做的是查看任務頁或文件頁的URL淑际。應該看起來和下面很像:
https://dash.scrapinghub.com/p/28814/job/1/1/

在這個URL中凉唐,28814是項目編號(scrapy.cfg中也設置了它),第一個1是爬蟲“tomobile”的ID編號,第二個1是任務編號读整。按順序使用這三個數字,我們可以在控制臺中用curl取回文件强品,請求發(fā)送到https://storage.scrapinghub.com/items/<project id>/<spider id>/<job id>,并使用用戶名/API key驗證的榛,如下所示:

$ curl -u 180128bc7a0.....50e8290dbf3b0: https://storage.scrapinghub.com/items/28814/1/1
{"_type":"PropertiesItem","description":["same\r\nsmoking\r\nr...
{"_type":"PropertiesItem","description":["british bit keep eve...
...

如果詢問密碼的話逻锐,可以不填。用程序取回文件的話晓淀,可以使用Scrapinghub當做數據存儲后端盏档。存儲的時間取決于訂閱套餐的時間(免費試用是七天)。

制定周期抓取

只需要點擊Periodic Jobs欄(1)懦窘,點擊Add(2),設定爬蟲(3)畅涂,調整抓取頻率(4),最后點擊Save(5)苹丸。

總結
本章中苇经,我們首次接觸了將Scrapy項目部署到Scrapinghub。定時抓取數千條信息扇单,并可以用API方便瀏覽和提取。后面的章節(jié)中施流,我們繼續(xù)學習設置一個類似Scrapinghub的小型服務器鄙信。下一章先學習配置和管理。


序言
第1章 Scrapy介紹
第2章 理解HTML和XPath
第3章 爬蟲基礎
第4章 從Scrapy到移動應用
第5章 快速構建爬蟲
第6章 Scrapinghub部署
第7章 配置和管理
第8章 Scrapy編程
第9章 使用Pipeline
第10章 理解Scrapy的性能
第11章(完) Scrapyd分布式抓取和實時分析


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末银受,一起剝皮案震驚了整個濱河市宾巍,隨后出現的幾起案子,更是在濱河造成了極大的恐慌顶霞,老刑警劉巖锣吼,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異鲜侥,居然都是意外死亡诸典,警方通過查閱死者的電腦和手機崎苗,發(fā)現死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門胆数,熙熙樓的掌柜王于貴愁眉苦臉地迎上來互墓,“玉大人,你說我怎么就攤上這事篡撵。” “怎么了券盅?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵膛檀,是天一觀的道長。 經常有香客問我咖刃,道長,這世上最難降的妖魔是什么花鹅? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任磕潮,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘斤富。我一直安慰自己,他們只是感情好满力,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布油额。 她就那樣靜靜地躺著,像睡著了一般潦嘶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天顷歌,我揣著相機與錄音眯漩,去河邊找鬼。 笑死赦抖,一個胖子當著我的面吹牛辅肾,可吹牛的內容都是我干的。 我是一名探鬼主播宛瞄,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盈电!你這毒婦竟也來了杯活?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤吸重,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嚎幸,有當地人在樹林里發(fā)現了一具尸體寄猩,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年替废,在試婚紗的時候發(fā)現自己被綠了泊柬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡状答,死狀恐怖,靈堂內的尸體忽然破棺而出剪况,到底是詐尸還是另有隱情,我是刑警寧澤译断,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站堪唐,受9級特大地震影響,放射性物質發(fā)生泄漏淮菠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一合陵、第九天 我趴在偏房一處隱蔽的房頂上張望澄阳。 院中可真熱鬧拥知,春花似錦碎赢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拷窜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間装黑,已是汗流浹背恋谭。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工挽鞠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狈孔,地道東北人材义。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像油挥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子深寥,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容