首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Nokogiri在云开发环境(Cloud9)上刮取数据

如何使用Nokogiri在云开发环境(Cloud9)上刮取数据
EN

Stack Overflow用户
提问于 2016-03-04 23:24:14
回答 3查看 191关注 0票数 0

我目前正在使用Cloud9作为基于云的IDE,但不幸的是,在Cloud9上运行似乎增加了一层我不太理解的复杂性。

例如,以下代码尽管是从教程中复制和粘贴的,但不会在终端中生成任何输出:

代码语言:javascript
复制
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中运行该文件。
EN

回答 3

Stack Overflow用户

发布于 2016-03-05 01:35:17

是的,你可以做到:

  1. Goto C9.io和登录
  2. 单击“工作区”并选择“自定义模板”
  3. mkdir scrape && cd $_
  4. touch scrape.rb
  5. 将代码粘贴到scrape.rb中
  6. 运行:ruby scrape.rb

给你,一切都会好起来的。

票数 2
EN

Stack Overflow用户

发布于 2016-03-05 00:01:51

因为您正在使用OpenUri获取网页,这将在Heroku或任何机器上工作。但是您不需要使用Heroku,因为您已经能够在nba.com上刮Cloud9了。

您说您使用的代码不会打印到控制台,但它是为我打印的。

这取决于您希望如何处理使用Nokogiri解析的数据。要将其保存到数据库或文件中吗?注意编写文件,而不是使用puts命令打印到屏幕上。

票数 1
EN

Stack Overflow用户

发布于 2016-03-05 01:09:41

此代码输出到控制台。

首先,确保您安装了Nokogiri gem,并且您有完整的Internet连接。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35807892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档