带有 Ruby 的 Imdb api
Posted
技术标签:
【中文标题】带有 Ruby 的 Imdb api【英文标题】:Imdb api with Ruby 【发布时间】:2013-04-28 07:25:50 【问题描述】:我正在尝试使用imdb API。我试图搜索 Fargo,但是当我运行它时,我得到的只是一个黑屏:
require 'net/http'
uri = URI.parse("http://imdbapi.org/")
response = Net::HTTP.post_form(uri, "q" => "Fargo")
谁能告诉我出了什么问题或提供一个示例,说明如何使用来自该 api 的 ruby 中的 json 从 Fargo 检索数据?
【问题讨论】:
【参考方案1】:简单的方法:
require 'json'
require 'open-uri'
json = JSON.parse(open("http://imdbapi.org?q=Fargo") |x| x.read ).first
获取单个元素:
json['title']
#=> Fargo
【讨论】:
这个网站不工作了,用这个代替,这个速度很快而且似乎是免费的theimdbapi.org【参考方案2】:下面这个简单的代码向我们展示了如何从 imdb api 获取基本的 json 数据:
require "net/http"
require "uri"
uri = URI.parse("http://imdbapi.org/?title=Fargo&type=json")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
puts response.body
我以 REST 方式使用动词 GET。
【讨论】:
我从 response.body 中得到:["runtime": ["98 min"], "rating":8.2, "genres" ... etc 如何获取单个元素由此?仅示例标题 为此更新了我的帖子。 :) 就像@kiddorails 所做的一样,'json = JSON.parse(response.body).first',不要忘记 require 'json'。以上是关于带有 Ruby 的 Imdb api的主要内容,如果未能解决你的问题,请参考以下文章