【问题标题】:Imdb api with Ruby带有 Ruby 的 Imdb api
【发布时间】: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 检索数据?

【问题讨论】:

    标签: ruby api imdb


    【解决方案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'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多