【问题标题】:Connecting to IMDB连接到 IMDB
【发布时间】:2010-09-11 03:30:36
【问题描述】:

以前有人做过吗?在我看来,应该有一个网络服务,但我找不到。我正在编写一个供个人使用的应用程序,它只显示来自 IMDB 的基本信息。

【问题讨论】:

    标签: web-services imdb


    【解决方案1】:

    没有可用的网络服务。

    但是有足够的 html 抓取工具用每种语言编写来满足您的需求!

    我在一些个人项目中使用了.NET 3.5 Imdb Services opensource project

    1 分钟谷歌搜索结果:

    【讨论】:

    • 谢谢我正在寻找这个来简化我在大学的项目工作:)
    【解决方案2】:

    IMDb 发布的唯一“API”是一组plain-text data files,其中包含演员、导演、电影等的格式化列表。除非有人为您的语言发布了解析器,否则您可能需要编写自己的解析器。尝试 Google 搜索,例如“imdb api”和“imdb parser”。

    屏幕抓取工具可能有用,但它们在使用条款中特别提到了prohibit scrapers

    【讨论】:

    • 您对禁止使用刮板这一事实是完全正确的,但由于它仅供个人使用,我不会将其作为“表演塞”。
    【解决方案3】:

    IMDB 禁止爬虫,并且每隔一段时间就会更改页面布局,因此解析 HTML 是一种选择,但要准备好每年调整 2-3 次代码(去过那里,做过,放弃)。他们确实有一项收费服务,可以完全访问数据,但你还需要解释它的用途,并说服他们你不是在建立一个有竞争力的网站(我有一个链接,但似乎已更改,现在找不到)。

    【讨论】:

    • 您好,我不明白为什么 imdb 不允许网络抓取,但它们确实让您可以完全访问他们的完整数据?你知道原因吗?这只是没有意义,因为网络抓取只是从他们已经提供的网站获取数据?
    【解决方案4】:

    这是我自己使用 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 );
    

    【讨论】:

      【解决方案5】:

      TRYNT Heavy Technologies 提供(免费)用于检索基本 IMDb 数据的网络服务——请访问他们的网站http://www.trynt.com/trynt-movie-imdb-api/。他们还为电视数据提供单独的服务。

      【讨论】:

      • Trynt 死了吗?现在已经停了几天了。
      【解决方案6】:

      另一种选择是在本地计算机上运行 IMDB 数据库。 Java Movie Database 导入 IMDB 数据库文件,转换它们并提供本地可访问的 IMDB 副本。 IMDB 有一些 Java 电影数据库没有的功能,反之亦然,但如果您正在寻找的是快速访问所有数据,那么可能值得一试。

      【讨论】:

        【解决方案7】:

        IMDb 的库目前似乎非常不可靠且效率极低。我真希望IMDb 能创建一个网络服务。

        经过一番搜索,我找到了IMDb 的合理替代方案。它提供了所有基本信息,例如概述、年份、评级、海报、预告片等:

        The Movie Database (TMDb).

        它提供了一个带有wrappers for several languages 的网络服务,目前看来是可靠的。对我来说,搜索结果也更准确。

        【讨论】:

          【解决方案8】:

          虽然这是两年前发布的,但这里有一个简单的 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 结果访问该网站以查看更多选项。

          【讨论】:

            【解决方案9】:

            现在有一个(未记录的)API,例如http://www.imdb.com/xml/find?json=1&amp;q=Harry+Potter。见Does IMDB provide an API?

            【讨论】:

              【解决方案10】:

              至少有一个名为 IMDb8 的非官方 IMDb API。它有大约 31 个端点,包括

              1. 演员/今天出生的名单
              2. 演员/获得奖项摘要
              3. title/get-plots
              4. 头衔/获得顶级船员

              等等。与任何其他 API 一样,它使用起来非常简单。我使用这个 API 来构建一个有趣的琐事项目。你可以找到一个关于如何get started here的教程。

              【讨论】:

                猜你喜欢
                • 2020-08-19
                • 2020-03-18
                • 1970-01-01
                • 2013-03-21
                • 2020-09-09
                • 1970-01-01
                • 2015-08-13
                • 2014-02-24
                • 1970-01-01
                相关资源
                最近更新 更多