连接到IMDB
有人做过吗?在我看来,应该有一个Web服务,但我找不到。我正在编写一个供个人使用的应用程序,该应用程序仅显示IMDB的基本信息。
解决方案
没有可用的网络服务。
但是,有足够的用每种语言编写的html刮刀都可以满足需求!
我在一些个人项目中使用了.NET 3.5 Imdb Services开源项目。
1分钟的Google搜索结果:
- Perl:IMDB电影
- Ruby:libimdb-ruby
- Python:IMDbPY
IMDb发布的唯一" API"是一组纯文本数据文件,其中包含演员,导演,电影等的格式化列表。除非有人为语言发布了一个,否则我们可能需要编写自己的解析器。尝试使用" imdb api"和" imdb parser"之类的Google搜索。
屏幕刮板可能有用,但在使用方面特别禁止刮板。
IMDB禁止使用刮板,并且不时更改页面布局,因此可以选择解析HTML,但是要准备每年调整代码2-3次(在那里,这样做,放弃了)。他们确实有一项收费服务,可以让我们完全访问数据,但是我们还需要解释其用途,并说服他们我们不是在建设一个有竞争力的网站(我有一个链接,已经更改并且现在找不到它)。
这是我自己使用RegEx的解决方案:
private const string UglyMovieRegex = "(?<=5>|3>)(Cast|Director:|Fun\sStuff|Genre:|Plot:|Runtime:|Tagline:|Writers:)" + "|href=\"[\w\d/]+?(Genres|name|character)/([\w]+?)/\".*?>([.\-\s\w]+)</a>" + "|(?<=h\d>)([.\w\s'\-\"]+)(?=<a\sc|</d|\|)"; Regex MovieData = new Regex (UglyMovieRegex, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline );
TRYNT Heavy Technologies提供(免费)用于检索基本IMDb数据的Web服务-在http://www.trynt.com/trynt-movie-imdb-api/上查看其站点。他们还提供电视数据的单独服务。
另一种选择是在本地计算机上运行IMDB数据库。 Java Movie Database导入IMDB数据库文件,对其进行转换,并提供IMDB在本地可访问的副本。 IMDB具有Java Movie Database不具备的某些功能,反之亦然,但是如果我们要查找的是快速访问所有数据,那么值得尝试一下。
目前,IMDb的库似乎相当不可靠,效率很低。我真的希望IMDb会创建一个Web服务。
经过一番搜索,我找到了IMDb的合理替代品。它提供所有基本信息,例如概述,年份,等级,海报,预告片等:
电影数据库(TMDb)。
它提供了带有多种语言包装器的网络服务,到目前为止看来是可靠的。对于我自己来说,搜索结果也更加准确。