【发布时间】:2010-09-11 03:30:36
【问题描述】:
以前有人做过吗?在我看来,应该有一个网络服务,但我找不到。我正在编写一个供个人使用的应用程序,它只显示来自 IMDB 的基本信息。
【问题讨论】:
标签: web-services imdb
以前有人做过吗?在我看来,应该有一个网络服务,但我找不到。我正在编写一个供个人使用的应用程序,它只显示来自 IMDB 的基本信息。
【问题讨论】:
标签: web-services imdb
没有可用的网络服务。
但是有足够的 html 抓取工具用每种语言编写来满足您的需求!
我在一些个人项目中使用了.NET 3.5 Imdb Services opensource project。
1 分钟谷歌搜索结果:
【讨论】:
IMDb 发布的唯一“API”是一组plain-text data files,其中包含演员、导演、电影等的格式化列表。除非有人为您的语言发布了解析器,否则您可能需要编写自己的解析器。尝试 Google 搜索,例如“imdb api”和“imdb parser”。
屏幕抓取工具可能有用,但它们在使用条款中特别提到了prohibit scrapers。
【讨论】:
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 数据的网络服务——请访问他们的网站http://www.trynt.com/trynt-movie-imdb-api/。他们还为电视数据提供单独的服务。
【讨论】:
另一种选择是在本地计算机上运行 IMDB 数据库。 Java Movie Database 导入 IMDB 数据库文件,转换它们并提供本地可访问的 IMDB 副本。 IMDB 有一些 Java 电影数据库没有的功能,反之亦然,但如果您正在寻找的是快速访问所有数据,那么可能值得一试。
【讨论】:
IMDb 的库目前似乎非常不可靠且效率极低。我真希望IMDb 能创建一个网络服务。
经过一番搜索,我找到了IMDb 的合理替代方案。它提供了所有基本信息,例如概述、年份、评级、海报、预告片等:
它提供了一个带有wrappers for several languages 的网络服务,目前看来是可靠的。对我来说,搜索结果也更准确。
【讨论】:
虽然这是两年前发布的,但这里有一个简单的 python 代码
import urllib2
movie_id = raw_input('Enter the ID of the movie: ')
json = urllib2.urlopen('http://imdbapi.com/?i=' + movie_id + '&r=json')
print json.read()
另存为 imdb.py,然后在 shell 或终端或其他方式中运行
如果你想要 xml 数据,只需将 json 替换为 xml
请注意,这是使用 imdbapi.com 网站返回 json 结果访问该网站以查看更多选项。
【讨论】:
现在有一个(未记录的)API,例如http://www.imdb.com/xml/find?json=1&q=Harry+Potter。见Does IMDB provide an API?
【讨论】:
至少有一个名为 IMDb8 的非官方 IMDb API。它有大约 31 个端点,包括
等等。与任何其他 API 一样,它使用起来非常简单。我使用这个 API 来构建一个有趣的琐事项目。你可以找到一个关于如何get started here的教程。
【讨论】: