【问题标题】:Get IMDB info using JavaScript使用 JavaScript 获取 IMDB 信息
【发布时间】:2021-12-07 17:40:34
【问题描述】:

我正在尝试使用 JavaScript 获取 IMDB 信息。以下代码适用于 Title、Year、IMDB 链接,但是当我尝试获取“Runtime”、“Director”、“Released”等时,我得到了未定义的结果。请帮忙!

这是数据格式:https://www.omdbapi.com/?i=tt4779682&apikey=ba1f4581

代码:

var data;
function getanswer(q){
$.get("https://www.omdbapi.com/?s="+q+"&apikey=ba1f4581", function(rawdata){
var rawstring =JSON.stringify(rawdata);
data =JSON.parse(rawstring);
var title = data.Search[0].Title;
var year = data.Search[0].Year; 
var director = data.Search[0].Director; 
var imdburl="https://www.imdb.com/title/"+data.Search[0].imdbID+"/";

var posterurl =data.Search[0].Poster;
document.getElementById('answer').innerHTML="<h1>"+title+"</h1><br> <img src= '"+posterurl+"'><br><p> Year Released:"+year+"</p> <br><p> Year Released:"+director+"</p> <br> <p> IMDB page: <a href='"+imdburl+"'target='_blank'>"+imdburl+"</a></p>"; }); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<html>
<head></head>
<body onload="getanswer(document.getElementById('querybox').value)">
<!doctype html> <input value="The Meg" onkeyup="getanswer(document.getElementById('querybox').value)" id="querybox"> <div id="answer"></div> 
</body>
</html>

【问题讨论】:

  • 执行console.log(data),您会看到数据不包含您想要的信息。您可能需要查阅 API 文档以了解如何包含所需的数据。通常也不需要立即在JSON.stringify 的结果上调用JSON.parse(除非您想克隆数据?)。您可以直接访问rawdatadatarawdata 都是对象,具有相同的结构。
  • 很可能您必须使用imdbID 值发出第二个请求以获取详细信息。

标签: javascript html imdb omdbapi


【解决方案1】:

根据 api 文档,您使用的 s 参数不会返回 Runtime/Director/etc。您可以使用 t 参数并删除 Search[0]。

下面是可以工作的代码:

var data;
function getanswer(q){
$.get("https://www.omdbapi.com/?t="+q+"&apikey=ba1f4581", function(rawdata){
var rawstring =JSON.stringify(rawdata);
data =JSON.parse(rawstring);
console.log(data);
var title = data.Title;
var year = data.Year; 
var director = data.Director; 
var imdburl="https://www.imdb.com/title/"+data.imdbID+"/";

var posterurl =data.Poster;
document.getElementById('answer').innerHTML="<h1>"+title+"</h1><br> <img src= '"+posterurl+"'><br><p> Year Released:"+year+"</p> <br><p> Year Released:"+director+"</p> <br> <p> IMDB page: <a href='"+imdburl+"'target='_blank'>"+imdburl+"</a></p>"; }); }

【讨论】:

  • 什么是“s”参数,我应该添加什么而不是“Search[0]”。请实现代码并向我展示。先生,这将是一个大恩惠!
  • 我已经添加了代码。您可能需要参考OMDb API 的参数部分。
猜你喜欢
  • 2015-08-13
  • 2016-06-17
  • 2011-12-06
  • 2015-05-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2011-07-08
  • 2014-07-13
相关资源
最近更新 更多