我最近发现了一个电影管理应用程序,它从IMDB数据库。
IMDB是否为此提供了API,或任何可用的第三方API ?
https://deanclatworthy.com/tools.html是一个IMDB API,但由于滥用而关闭。
IMDB本身似乎在分发数据,但只是在文本文件中:
http://www.imdb.com/interfaces
有几个api,你可以谷歌。屏幕抓取是明确禁止的。 官方API似乎正在筹备中,但这已经是多年前的事了
是的,但不是免费的。
.....年费从15,000美元到更高,这取决于数据的受众以及正在获得许可的数据。
, deanclatworthy似乎仍然有效 还有一个:http://imdbapi.poromenos.org/
新api @ http://www.omdbapi.com
编辑:由于法律问题不得不将服务转移到一个新的域名:)
那么TMDb API呢?
您可以通过imdb_id和GET /find/{external_id}搜索
GET /find/{external_id}
https://developers.themoviedb.org/3/find/find-by-id
这是一个Python模块,提供API从IMDB网站获取数据
# EYZ0
另一个获取电影信息的合法选择是烂番茄API(由Fandango制作)。
IMDb有一个公共API,虽然没有文档记载,但是快速可靠(在官方网站上通过AJAX使用)。
https://v2.sg.media-imdb.com/suggests/h/hello.json(截至2019年)
imdb${searchphrase}
https://v2.sg.media-imdb.com/suggestion/h/hello.json(截至2020年)
// 1) Vanilla JavaScript (JSON-P) function addScript(src) { var s = document.createElement('script'); s.src = src; document.head.appendChild(s); } window.imdb$foo = function (results) { /* ... */ }; addScript('https://sg.media-imdb.com/suggests/f/foo.json'); // 2) Using jQuery (JSON-P) jQuery.ajax({ url: 'https://sg.media-imdb.com/suggests/f/foo.json', dataType: 'jsonp', cache: true, jsonp: false, jsonpCallback: 'imdb$foo' }).then(function (results) { /* ... */ }); // 3) Pure JSON (with jQuery) // Use a local proxy to the clean `/suggestion` API. jQuery.getJSON('/api/imdb/?q=foo', function (results) { /* ... */ }); // 4) Pure JSON (plain JavaScript; Modern ES6, ES2017, and Fetch API) // Serve a "/api" route in your app, that proxies (and caches!) // to v2.sg.media-imdb.com/suggestion/h/hello.json const resp = await fetch('/api/imdb/?q=foo'); const results = await resp.json();
请注意,这些api是非官方的,随时都可能更改!
高级API不再存在。好消息是,建议API现在支持“高级”。还有通过电影名称和演员名称进行搜索的功能。
最近在SXSWi 2012上,在他们的“Mashery Lounge”中,有一个来自rovi的类似imdb的API的展位。这不是一个免费的API,但据我采访的销售人员说,他们根据你的预算提供收益分成或固定费用。我还没用过,不过看起来挺酷的。
我很有信心,你发现的应用程序实际上从Themoviedb.org的API得到他们的信息(他们从IMDB得到大部分的东西)。它们有一个免费的开放API,许多电影管理器/XMBC应用程序都使用这个API。
http://app.imdb.com有一个JSON API供移动应用程序使用
然而,警告是相当严重的:
仅供IMDb书面授权的客户使用 未经授权客户端的作者和用户将为他们的行为承担全部的法律责任
我认为这是为那些通过API访问数据而付费的开发者准备的。
编辑:只是为了好玩,我写了一个客户端库,试图从API读取数据,你可以在这里找到它:api-imdb
显然,您应该注意这个警告,并使用TheMovieDB之类的数据库作为更好、更开放的数据库。
然后可以使用这个Java API包装器(我编写的):api-themoviedb
好吧,我找到了这一个IMDB刮刀
或者c#的imdbapi.org实现:
using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Xml.Linq; using HtmlAgilityPack; // http://htmlagilitypack.codeplex.com/ public class IMDBHelper { public static imdbitem GetInfoByTitle(string Title) { string url = "http://imdbapi.org/?type=xml&limit=1&title=" + Title; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "GET"; req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))"; string source; using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream())) { source = reader.ReadToEnd(); } HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(source); XDocument xdoc = XDocument.Parse(doc.DocumentNode.InnerHtml, LoadOptions.None); imdbitem i = new imdbitem(); i.rating = xdoc.Descendants("rating").Select(x => x.Value).FirstOrDefault(); i.rating_count = xdoc.Descendants("rating_count").Select(x => x.Value).FirstOrDefault(); i.year = xdoc.Descendants("year").Select(x => x.Value).FirstOrDefault(); i.rated = xdoc.Descendants("rated").Select(x => x.Value).FirstOrDefault(); i.title = xdoc.Descendants("title").Select(x => x.Value).FirstOrDefault(); i.imdb_url = xdoc.Descendants("imdb_url").Select(x => x.Value).FirstOrDefault(); i.plot_simple = xdoc.Descendants("plot_simple").Select(x => x.Value).FirstOrDefault(); i.type = xdoc.Descendants("type").Select(x => x.Value).FirstOrDefault(); i.poster = xdoc.Descendants("poster").Select(x => x.Value).FirstOrDefault(); i.imdb_id = xdoc.Descendants("imdb_id").Select(x => x.Value).FirstOrDefault(); i.also_known_as = xdoc.Descendants("also_known_as").Select(x => x.Value).FirstOrDefault(); i.language = xdoc.Descendants("language").Select(x => x.Value).FirstOrDefault(); i.country = xdoc.Descendants("country").Select(x => x.Value).FirstOrDefault(); i.release_date = xdoc.Descendants("release_date").Select(x => x.Value).FirstOrDefault(); i.filming_locations = xdoc.Descendants("filming_locations").Select(x => x.Value).FirstOrDefault(); i.runtime = xdoc.Descendants("runtime").Select(x => x.Value).FirstOrDefault(); i.directors = xdoc.Descendants("directors").Descendants("item").Select(x => x.Value).ToList(); i.writers = xdoc.Descendants("writers").Descendants("item").Select(x => x.Value).ToList(); i.actors = xdoc.Descendants("actors").Descendants("item").Select(x => x.Value).ToList(); i.genres = xdoc.Descendants("genres").Descendants("item").Select(x => x.Value).ToList(); return i; } public class imdbitem { public string rating { get; set; } public string rating_count { get; set; } public string year { get; set; } public string rated { get; set; } public string title { get; set; } public string imdb_url { get; set; } public string plot_simple { get; set; } public string type { get; set; } public string poster { get; set; } public string imdb_id { get; set; } public string also_known_as { get; set; } public string language { get; set; } public string country { get; set; } public string release_date { get; set; } public string filming_locations { get; set; } public string runtime { get; set; } public List<string> directors { get; set; } public List<string> writers { get; set; } public List<string> actors { get; set; } public List<string> genres { get; set; } } }
下面是一个简单的解决方案,根据Krinkle的查询按名称获取节目:
您可以通过让服务器获取URL来绕过同源策略,而不是尝试直接使用AJAX和不必使用JSONP来完成。来获取URL
Javascript (jQuery):
function getShowOptionsFromName (name) { $.ajax({ url: "ajax.php", method: "GET", data: {q: name}, dataType: "json" }).done(function(data){ console.log(data); }); }
PHP(在ajax.php文件):
$q = urlencode($_GET["q"]); echo file_get_contents("http://www.imdb.com/xml/find?json=1&nr=1&tt=on&q=$q");
找到了这个
IMDbPY是一个Python包,用于检索和管理的数据 IMDb的电影数据库,关于电影,人物,人物和 公司。< / p >
http://imdbpy.sourceforge.net/ < a href = " http://imdbpy.sourceforge.net/ " > < / >
如果你想要电影细节API,那么你可以考虑
OMDB API这是打开电影数据库。它 返回IMDB评分,IMDB投票和烂番茄评分
或者你可以用
我的阿派电影允许你搜索IMDB ID,它返回详细的信息,但它有请求限制。
如果你需要电视信息,你可以尝试TVmaze.com。
它是免费的,快速和可靠的。这是开发者页面:
< a href = " http://api.tvmaze.com/ " rel =“nofollow”> http://api.tvmaze.com/ < / >
截至2016年8月,IMDB似乎还没有一个直接的API,但我看到很多人在上面写刮刀和东西。在这里是一种使用box office buzz API访问电影数据的更标准的方法。所有响应都是JSON格式,每天5000次查询,免费
API提供的列表