如何使用Nokogiri在云开发环境中抓取数据(Cloud9)

问题描述:

我目前使用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中运行该文件。

因为您使用OpenUri来获取网页,这可以在Heroku或任何机器上工作。但是你不需要使用Heroku,因为你已经可以在Cloud9上抓取nba.com了。

你说你正在使用的代码不打印到控制台,但它确实适合我。

这取决于你想用你使用Nokogiri解析的数据。你想将它保存到数据库或文件吗?看看写入文件,而不是使用puts命令打印到屏幕上。

此代码输出到控制台。

首先确保你安装了Nokogiri宝石,并且你有完整的互联网连接。

第二次启动调试。要调试程序,您可以使用像byebug这样的gem,它可以在运行时为您提供交互式调试器。否则,由于您的代码很短,您可以添加一堆puts "point x"以实际查看程序停止或中断的位置。

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

是的,你可以做到这一点:

  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