有没有人这样做过?在我看来,应该有一个网络服务,但我找不到。我正在编写一个供个人使用的应用程序,它只显示来自 IMDB 的基本信息。
10 回答
没有可用的网络服务。
但是每种语言都有足够多的 html 抓取工具来满足您的需求!
我在一些个人项目中使用了.NET 3.5 Imdb Services 开源项目。
1 分钟谷歌搜索结果:
- Perl:IMDB 电影
- 红宝石:libimdb-ruby
- 蟒蛇:IMDbPY
这是我自己使用 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 );
虽然这是两年前发布的,但这里有一个简单的 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 结果访问该网站以查看更多选项。
IMDB 禁止爬虫,并且每隔一段时间就更改一次页面布局,因此解析 HTML 是一种选择,但要准备好每年调整 2-3 次代码(去过那里,做过那个,放弃)。他们确实有一项收费服务,可以完全访问数据,但你还需要解释它的用途,并说服他们你不是在建立一个有竞争力的网站(我有一个链接,但似乎已更改,现在找不到)。
另一种选择是在本地机器上运行 IMDB 数据库。Java 电影数据库导入 IMDB 数据库文件,对其进行转换并提供本地可访问的 IMDB 副本。IMDB 有一些 Java 电影数据库没有的功能,反之亦然,但如果您正在寻找的是快速访问所有数据,那么可能值得一试。
现在有一个(未记录的)API,例如http://www.imdb.com/xml/find?json=1&q=Harry+Potter
. 请参阅IMDB 是否提供 API?
TRYNT Heavy Technologies 提供(免费)用于检索基本 IMDb 数据的 Web 服务——查看他们的网站http://www.trynt.com/trynt-movie-imdb-api/。他们还为电视数据提供单独的服务。
至少有一个名为 IMDb8 的非官方 IMDb API。它有大约 31 个端点,包括
- 演员/今天出生的名单
- 演员/获奖总结
- 标题/获取图
- 标题/获得顶级船员
etc. Like any other API it is very straightforward to use. I used this API for building a fun trivia project. You can find a tutorial on how to get started here.