IMDB是否提供API? [关闭]

最近,我发现了一个电影管理器应用程序,该应用程序从IMDB数据库中获取其数据。

IMDB是否为此提供API或任何可用的第三方API?


#1楼

我非常有信心,您找到的应用程序实际上是从Themoviedb.org的API获取信息的(他们从IMDB中获得了大部分东西)。 他们有一个免费的开放API,供电影组织者/ XMBC应用程序使用。


#2楼

http://app.imdb.com上有一个供移动应用程序使用的JSON API。

但是,警告相当严重:

仅供IMDb书面授权的客户使用。
未经授权客户的作者和用户对其行为承担全部法律责任。

我想这是为那些需要付费才能通过其API访问数据的开发人员准备的。

编辑 :只是为了踢,我写了一个客户端库试图从API读取数据,您可以在这里找到它: api-imdb

显然,您应该注意该警告,实际上,请使用TheMovieDB之类的东西作为更好和更开放的数据库。

然后,您可以使用此Java API包装器(由我编写): api-themoviedb


#3楼

NetFilx更是一种个性化媒体服务,但是您可以将其用于电影的公共信息。 它支持Javascript和OData。
还要看一下JMDb :信息与使用IMDb网站时获得的信息基本相同。


#4楼

好的,我发现了这只IMDB刮板

适用于C#: http//web3o.blogspot.de/2010/11/aspnetc-imdb-scraping-api.html

此处的PHP: http : //web3o.blogspot.de/2010/10/php-imdb-scraper-for-new-imdb-template.html

或者是针对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; }
    }

}

#5楼

https://deanclatworthy.com/tools.html是IMDB API,但由于滥用而被关闭。


#6楼

IMDB本身似乎在分发数据,但仅在文本文件中:

http://www.imdb.com/interfaces

您可以通过多种API来使用Google。 明确禁止刮屏。 官方的API似乎正在开发中,但是已经有很多年了。


#7楼

这是一个简单的解决方案,可以根据来自Krinkle的查询按名称获取显示:

您可以通过让服务器获取URL而不是尝试直接使用AJAX直接获取URL来解决同源策略,而不必使用JSONP来做到这一点。

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");

#8楼

找到这个

IMDbPY是一个Python软件包,可用于检索和管理有关电影,人物,人物和公司的IMDb电影数据库的数据。

http://imdbpy.sourceforge.net/


#9楼

是的,但不是免费的。

.....年费从15,000美元到更高不等,这取决于数据的听众和被许可的数据。

网址:-http: //www.imdb.com/licensing/


#10楼

该deanclatworthy似乎仍然有效,还有另一个: http ://imdbapi.poromenos.org/


#11楼

如果您想要电影详细信息API,可以考虑

OMDB API是开放电影数据库,它返回IBDB评分,IMDB投票,您也可以包括烂番茄评分。

否则你可以使用

My Api Films允许您使用IMDB ID进行搜索并返回详细信息,但是它具有请求限制。


#12楼

如果您需要电视信息,可以尝试TVmaze.com

它是免费,快速且可靠的。 这是开发者页面:

http://api.tvmaze.com/


#13楼

截至2016年8月,IMDB似乎还没有直接的API,但是我看到很多人在上面编写刮板和东西。 是使用票房buzz API访问电影数据的更标准的方法。 免费计划每天提供JSON格式的所有响应和每天5000个查询

API提供的内容清单

  1. 电影学分
  2. 电影ID
  3. 电影影像
  4. 通过IMDB ID获取电影
  5. 获取最新电影列表
  6. 获取新版本
  7. 获取电影上映日期
  8. 获取特定电影的翻译列表
  9. 获取电影的视频,预告片和预告片
  10. 按标题搜索电影
  11. 还支持电视节目,游戏和视频

#14楼

新api @ http://www.omdbapi.com

编辑:由于法律问题不得不将服务移至新域:)


#15楼

TMDb API呢?

您可以使用Movie.imdbLookup通过imdb_id搜索

XBMC Media Center似乎正在使用它

https://www.themoviedb.org/documentation/api


#16楼

这是一个提供API的Python模块,可从IMDB网站获取数据

http://techdiary-viki.blogspot.com/2011/03/imdb-api.html


#17楼

获取电影信息的另一种合法选择是Rotten-Tomatoes API (由Fandango提供)。


#18楼

IMDb具有一个公共API,尽管未记录,但它是快速且可靠的(通过AJAX在官方网站上使用)。

搜索建议API

// 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 that strips the "padding" of JSON-P,
// e.g. "imdb$foo(" and ")", leaving pure JSON only.
jQuery.getJSON('/api/imdb/?q=foo', function (results) {
    /* ... */
});

// 4) Pure JSON (ES2017 and Fetch API)
// Using a custom proxy at "/api" that strips the JSON-P padding.
const resp = await fetch('/api/imdb/?q=foo');
const results = await resp.json();

高级搜索


请注意,这些API是非官方的,并且随时可能更改!


更新(2019年1月):高级API不再存在。 好消息是,建议API现在支持电影标题和演员名称。


#19楼

最近在SXSWi 2012的“ Mashery Lounge”中,有一个叫rovi的类似于IMDB的API的摊位。 它不是免费的API,但根据我与之交谈的销售人员的说法,他们会根据您的预算提供转股或固定使用费。 我还没有用过,但是看起来很酷。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值