ruby - 在使用 Ruby 连接到 HTTPS url 并将源数据传递给 Nokogiri 方面需要帮助

标签 ruby json parsing https nokogiri

我正在尝试从此网页获取电台列表 - https://web.barclayscyclehire.tfl.gov.uk/maps

我看到他们在 javascript 中有 JSON 结构的电台列表。所以我尝试连接到页面,然后将数据传递给 Nokogiri 以获取带有 JSON 的 javascript,然后分别解析 JSON。

为了连接到 HTTPS 并将数据传递给 Nokogiri,我使用了此处提供的代码 - https://gist.github.com/1037492

require 'net/https'
require 'nokogiri'

url = "https://example.com"
url = URI.parse( url )
http = Net::HTTP.new( url.host, url.port )
http.use_ssl = true if url.port == 443
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if url.port == 443
path = url.path
path += "?" + url.query unless url.query.nil?
res, data = http.get( path )

case res
  when Net::HTTPSuccess, Net::HTTPRedirection
    # parse link
    doc = Nokogiri::HTML(data)
     # do what you want ...
  else
    return "failed" + res.to_s
end

但是,当我尝试在 Aptana Studio 3 中进行调试时,在调试器可以在我拥有的任何断点处停止之前,它退出并给我一个无效的返回错误。该代码有问题吗? 这是连接到 HTTPS 并将数据传递给 Nokogiri 的最佳方式吗?

最佳答案

像这样尝试:

require 'nokogiri'
require 'open-uri'
require 'openssl'

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
doc = Nokogiri::HTML open(https_url)

关于ruby - 在使用 Ruby 连接到 HTTPS url 并将源数据传递给 Nokogiri 方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596339/

相关文章:

html - jsoup:如何选择具有满足条件的子节点的父节点

ruby-on-rails - 是否可以使用 Rspec 涵盖大型 rails 应用程序的所有方法?

Jquery Ajax 将 JSON 发布到 Web 服务

javascript - 如何在 javascript 或 jquery 中使用变量作为数组键

java - 在Python中解析序列化的Java对象

ios - UISearchController 找不到前四个数据

javascript - 阻止 JSON.parse 删除反斜杠和后面的字母?

mysql - rails : Database Seed

html - 根据条件动态填充 div

ruby - Chef::Node 在从 Recipe 调用的库中可用,但在通过 Singleton 类调用时不可用