CIMDBSearch 类
一篇关于简单的 C++ IMDB 搜索类的文章

引言
本文介绍了一个简单的 C++ 类,可用于从 IMDB 网站搜索电影信息。IMDB 网站是一个免费的在线服务,提供关于电影、电视剧、演员等详细信息。请通过此链接了解更多信息。IMDB - 互联网电影数据库也是一个数据库系统,因此许多应用程序使用这种方式提供信息来提取关于电影、电视剧、演员、拍摄地点等细节。
背景
基本想法是编写一个具有非常简单的 IMDB 接口的 C++ 类。我在 SourceForge 上找到了一两个 .NET 类,但没有 C++ 的实现。因此,我决定为全球 C++ 社区做出一个小小的贡献。此外,对于正在开发电影目录软件的任何人来说,这个类可能很有趣。
Using the Code
要使用 CIMDBSearch
类,请将 IMDBSearch.h 和 IMDBSearch.cpp 文件添加到您的项目中。使用该类的一些简单的 static
方法,您可以提取在 IMDB 上查找的电影信息,如下所示
#include "IMDBSearch.h"
// Search IMDB database
if (CIMDBSearch::SearchIMDB(_T("Enter a searching keyword here..."), ST_TITLES_EXACT))
{
// Get number of search results
int iNumberResults = CIMDBSearch::GetSearchCount();
for (int i=0; i<iNumberResults; i++)
{
// Get search item
LPSEARCH_INFO lpSearchItem = CIMDBSearch::GetSearchItem(i);
}
}
前面的代码片段将为您获取 IMDB 数据库中精确标题匹配的列表。要获取所有可能的标题,请使用 ST_TITLES_PARTIAL
标志代替 ST_TITLES_EXACT
标志。IMDB 网站在其搜索过程中返回不同的标题列表。一个是标题(精确匹配),另一个是标题(部分匹配)。这些标志支持从这些列表中提取数据。
SEARCH_INFO
结构的定义如下
typedef struct _SEARCH_INFO
{
_TCHAR szPath[256]; // IMDB Web page with the movie details
_TCHAR szTitle[256]; // The title of the movie
_TCHAR szYear[256]; // Year the movie was filmed
} SEARCH_INFO, *LPSEARCH_INFO;
要获取电影详情,请参见以下内容
// Get movie details
int item = 0;
LPMOVIE_INFO lpMovieInfo = NULL;
if ((lpMovieInfo=CIMDBSearch::GetMovieInfo(item)))
{
}
MOVIE_INFO
结构的定义如下
typedef struct _MOVIE_INFO
{
_TCHAR szUserRating[256]; // The movie user rating
_TCHAR szDirector[256]; // The director
_TCHAR szWriter[256]; // The writer
_TCHAR szReleaseDate[256]; // First release date
_TCHAR szGenre[256]; // The movie genre
_TCHAR szPlot[1024]; // A short description
_TCHAR szAwards[256]; // The awards
_TCHAR szUserComments[1024]; // User comments
_TCHAR szRuntime[256]; // The length of the movie
_TCHAR szCountry[256]; // The movie production country
_TCHAR szLanguage[256]; // The movie language
_TCHAR szColor[256]; // Color system
_TCHAR szAspectRatio[256]; // Picture aspect ratio
_TCHAR szSoundMix[256]; // The sound quality
_TCHAR szFilmingLocations[256]; // Filming locations
_TCHAR szCompany[256]; // The movie production company
_TCHAR szPoster[256]; // The link to the movie poster
// (.JPEG image generally)
_TCHAR szCast[15][256]; // The movie cast
} MOVIE_INFO, *LPMOVIE_INFO;
最后要做的事情是在退出应用程序之前调用 CIMDBSearch::Clear()
方法来清除内存。
关注点
我非常感兴趣从 IMDB 网站提取信息,因为许多流行的电影目录软件使用这个免费的网络服务来收集有关不同电影的细节,以便构建自制的数字电影收藏。
历史
- 2008 年 6 月 6 日:初始发布