我目前正在建立一个网站,网站中的其中一个块显示即将上映的电影(下周左右)。我发现IMDb是最好的去处。
问题是,IMDb没有API,我不知道如何从中提取数据并以我想要的方式在我的网站上显示它。在线阅读之后,我看到我能够使用Ajax下载页面,然后从那里查找并提取我需要的数据。但是,这似乎对我来说效率很低,而且我不知道如何在下载的文件中查找信息。
有更好的方法吗?
答案 0 :(得分:4)
我为我的应用做了同样的事情。由于Imdb没有API,我选择使用www.themoviedb.org。注册以获取API密钥,然后您可以查询他们的服务。文档位于此处:http://docs.themoviedb.apiary.io/。
这是在PCL中,我使用JSON.NET进行(反)序列化,我使用System.Net.Http进行网络调用。两者都是nuget包。您还可以使用http://json2csharp.com/从服务返回的示例JSON生成类。
我的应用示例:
private const string basePath = "https://api.themoviedb.org/3/";
private const string apiKey = "<your api key here>";
...
public async Task<IEnumerable<Movie>> GetUpcomingMovies(string title)
{
string url = string.Format("{0}movie/upcoming?api_key={1}", basePath, apiKey);
using (var client = new HttpClient())
{
var result = await client.GetStringAsync(url);
return JsonConvert.DeserializeObject<MovieList>(result).Movies;
}
}
Themoviedatabase还会返回Imdbd的ID。所以你可以使用它来查询Imdb。我刚刚在我的iOS应用程序中打开了一个新的webview,如果用户愿意,可以在新页面中打开Imdb。
webview.LoadRequest(new NSUrlRequest(
new NSUrl(string.Format("http://m.imdb.com/title/{0}", viewModel.ImdbId))));