<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를 통해 공식 웹 사이트에서 사용).
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 월) : 고급 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가 작동하는 것처럼 보이지만 이미 수년 동안 사용되었습니다.
영화 정보를 얻는 또 다른 법적 대안은 Rotten-Tomatoes API (Fandango 제공)입니다.
TMDb API는 어떻습니까?
imdb_id로 검색 할 수 있습니다 GET /find/{external_id}
예,하지만 무료는 아닙니다.
..... 데이터에 대한 대상 및 라이센스가 부여 된 데이터에 따라 15,000 달러에서 1 년에 이르는 연간 요금.
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가없는 것 같지만 많은 사람들이 위의 스크레이퍼 및 자료를 작성하는 것을 보았습니다. Box Office Buzz API를 사용하여 영화 데이터에 액세스하는보다 표준적인 방법은 다음과 같습니다 . JSON 형식의 모든 응답 및 무료 계획에 대한 하루에 5000 개의 쿼리
API가 제공하는 것들의 목록
그 deanclatworthy는 여전히 작동하는 것 같고 또 하나 있습니다 : http://imdbapi.poromenos.org/
다음은 Krinkle의 쿼리를 기반으로 이름별로 프로그램을 가져 오는 간단한 솔루션입니다.
서버가 AJAX로 직접 가져 오는 대신 URL을 가져 오도록하여 동일한 출처 정책을 해결할 수 있으며 JSONP를 사용하지 않아도됩니다.
자바 스크립트 (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");
알았어이 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를 원한다면 고려할 수 있습니다.
Open movies Database 인 OMDB API IBDB 등급, IMDB 투표를 반환하며 Rotten Tomato 등급도 포함 할 수 있습니다.
그렇지 않으면 당신은 사용할 수 있습니다
My Api Films 를 사용하면 IMDB ID로 검색하고 자세한 정보를 반환 할 수 있지만 요청 제한이 있습니다.