2016-03-04 41 views
0

我目前使用Cloud9作爲基於雲的IDE,但不幸的是,它似乎在Cloud9上運行的東西增加了一層複雜性,我不很明白。如何使用Nokogiri在雲開發環境中抓取數據(Cloud9)

例如,下面的代碼,儘管被複制並從一個教程粘貼,不會產生在終端的任何輸出:

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 

url = "http://stats.nba.com/player/#!/203096/stats/" 
data = Nokogiri::HTML(open(url)) 
puts data 

這導致了兩個問題:

  1. 我是否需要通過類似Heroku的方式部署此代碼,才能訪問互聯網上的URL?或者它只會在本地工作,直到我這樣做?
  2. 確切地說,當我沒有公開運行Ruby控制檯時,輸出應該是什麼樣的呢?我只是在bash中運行該文件。

回答

1

因爲您使用OpenUri來獲取網頁,這可以在Heroku或任何機器上工作。但是你不需要使用Heroku,因爲你已經可以在Cloud9上抓取nba.com了。

你說你正在使用的代碼不打印到控制檯,但它確實適合我。

這取決於你想用你使用Nokogiri解析的數據。你想將它保存到數據庫或文件嗎?看看寫入文件,而不是使用puts命令打印到屏幕上。

0

此代碼輸出到控制檯。

首先確保你安裝了Nokogiri寶石,並且你有完整的互聯網連接。

第二次啓動調試。要調試程序,您可以使用像byebug這樣的gem,它可以在運行時爲您提供交互式調試器。否則,由於您的代碼很短,您可以添加一堆puts "point x"以實際查看程序停止或中斷的位置。

第三要注意你在屏幕上看到的任何錯誤或警告。

2

是的,你可以做到這一點:

  1. 轉到C9.io和登錄
  2. 單擊 「工作區」,然後選擇 「自定義模板」
  3. mkdir scrape && cd $_
  4. touch scrape.rb
  5. 粘貼代碼進入scrape.rb
  6. 運行:ruby scrape.rb

你走了,一切都應該沒問題。

+0

哦哇,我意識到我已經保存了文件,我試圖運行這個.ru而不是.rb文件!愚蠢的錯誤在我的角色。感謝您幫助我弄清楚這一點。 – yoursweater

+0

@yoursweater太棒了,祝你好運。你能重擊點))) – 7urkm3n