<a href="http://www.imdb.com/title/{{{ $imdb_id }}}">{{{ $imdb_id }}}</a>
BTW: imdb_id follows this pattern: tt0000000
<a href="http://www.imdb.com/title/{{{ $imdb_id }}}">{{{ $imdb_id }}}</a>
BTW: imdb_id follows this pattern: tt0000000
回答:
IMDbには、ドキュメント化されていませんが、高速で信頼性の高いパブリックAPIがあります(AJAXを通じて公式Webサイトで使用されます)。
imdb${searchphrase}
形式です)。あるいは、ローカルプロキシを介してパディングを削除または置き換えることもできます。// 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月): Advanced APIは存在しません。良いニュースは、Suggestions APIが映画のタイトルと俳優名による検索の「高度な」機能もサポートするようになったことです。
if (ua.i) { c.img = { src: ua.i[0].replace("._V1_.jpg", "._V1._SX40_CR0,0,40,54_.jpg"), width: 40, height: 54 } }
。
新しいapi @ http://www.omdbapi.com
編集:法的な問題により、サービスを新しいドメインに移動する必要がありました:)
IMDB自体はデータを配布しているようですが、テキストファイルのみです。
http://www.imdb.com/interfaces
これを取り巻くいくつかのAPIがあります。画面のスクレイピングは明示的に禁止されています。公式のAPIは開発中のようですが、すでに何年も前から存在しています。
映画情報を取得するためのもう1つの法的な代替手段は、Rotten-Tomatoes API(Fandangoによる)です。
TMDb APIについてはどうですか?
あなたはimdb_idで検索できます GET /find/{external_id}
はい、ただし無料ではありません。
.....データのオーディエンスとライセンスされているデータに応じて、15,000ドルからそれ以上の範囲の年会費。
URL:-http: //www.imdb.com/licensing/
http://app.imdb.comには、モバイルアプリケーションで使用するJSON APIがあります。
ただし、警告はかなり深刻です。
IMDbによって書面で承認されたクライアントのみが使用できます。
無許可のクライアントの作成者とユーザーは、彼らの行為に対する完全な法的暴露/責任を受け入れます。
これは、API経由でデータにアクセスするためのライセンスを支払う開発者向けだと思います。
編集:キックのために、私はAPIからデータを読み取ろうとするクライアントライブラリを書きました、あなたはそれをここで見つけることができます:api-imdb
明らかに、警告に注意を払い、TheMovieDBのようなものをより優れたオープンなデータベースとして使用する必要があります。
次に、このJava APIラッパー(私が書いたもの)を使用できます:api-themoviedb
これを見つけた
IMDbPYは、映画、人物、キャラクター、企業に関するIMDb映画データベースのデータを取得および管理するのに役立つPythonパッケージです。
https://deanclatworthy.com/tools.htmlはIMDB APIですが、不正使用のために停止されています。
IMDBは2016年8月の時点で直接APIをまだ備えていないようですが、多くの人々が上記のスクレイパーやその他のものを書いているのを見ました。以下は、興行収入バズAPIを使用して映画データにアクセスするためのより標準的な方法です。JSON形式のすべての応答と無料プランで1日あたり5000クエリ
APIが提供するもののリスト
そのdeanclatworthyはまだ機能しているようで、もう1つあります。http://imdbapi.poromenos.org/
以下は、Krinkleからのクエリに基づいて名前で番組をフェッチする簡単なソリューションです。
サーバーでURLを直接取得する代わりに、AJAX を使用して取得することにより、同じ生成元のポリシーを回避できます。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");
NetFilxはよりパーソナライズされたメディアサービスですが、映画に関する公開情報に使用できます。JavascriptとODataをサポートしています。JMDb
も見てください。情報は、IMDb Webサイトを使用したときに取得できる情報と基本的に同じです。
わかりました、この1つの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; }
}
}
映画の詳細APIが必要な場合は、検討することができます
オープンムービーデータベースであるOMDB APIは、IBDBレーティング、IMDB投票を返し、腐ったトマトのレーティングも含めることができます。
または他にあなたは使うことができます
IMDB IDで検索して詳細情報を返すMy Api Filmsですが、リクエスト制限があります。
これは、IMDB Webサイトからデータを取得するためのAPIを提供するPythonモジュールです