从IMDb获取即将上映的电影列表

Gof*_*ord 5 api imdb client-side

我目前正在建立一个网站,该网站的其中一个块提供即将上映的电影(下周左右).我发现IMDb是最好的去处.

问题是,IMDb没有API,我不知道如何从中提取数据并以我想要的方式在我的网站上显示它.在线阅读之后,我看到我能够使用Ajax下载页面,然后从那里查找并提取我需要的数据.但是,这对我来说似乎效率很低,我不知道如何在下载的文件中查找信息.

有没有更好的办法?

val*_*ero 5

我为我的应用程序做了同样的事情。由于 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>";
Run Code Online (Sandbox Code Playgroud)

...

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

电影数据库还返回 Imdbd 的 ID。所以你可以用它来查询 Imdb。我刚刚在我的 iOS 应用程序中打开了一个新的 webview,如果用户愿意,让它在新页面中打开 Imdb。

webview.LoadRequest(new NSUrlRequest(
     new NSUrl(string.Format("http://m.imdb.com/title/{0}", viewModel.ImdbId))));
Run Code Online (Sandbox Code Playgroud)