我正在尝试从此网页获取电台列表 - 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/