IMDB 海报 URL 返回推荐被拒绝

Posted

技术标签:

【中文标题】IMDB 海报 URL 返回推荐被拒绝【英文标题】:IMDB Poster URL Returns Referral Denied 【发布时间】:2012-06-18 03:07:39 【问题描述】:

在我的 Ruby on Rails 应用程序中,我使用 imdb gem (https://rubygems.org/gems/imdb) 按标题搜索电影并获取海报 URL 并将其添加到我拥有的电影模型中我的数据库。然后在我看来,我把那个 url 放在一个图像源标签中,并将图像显示给用户。

我在本地运行我的应用程序时没有任何问题,但是当我将它部署到 Heroku 时,有时会成功渲染一些图像,但在大多数情况下,它们无法正确显示。我尝试了多种浏览器,结果当我尝试加载图像时,我收到一条“Referral Denied”消息:

You don't have permission to access "[poster url here]" on this server. Reference #[some ref. number here]

我将如何解决这个问题?我猜这是因为 IMDB 服务器拒绝我的访问,因为要么我从我的应用程序发出了太多请求,要么因为我的应用程序没有必要的凭据来获取数据,或者可能两者兼而有之。有没有办法绕过这个?

【问题讨论】:

我对 gem 不熟悉,但它似乎是 scraping the page 以获取使用 Nokogiri 的信息。我会记下 Heroku 上失败的电影,看看同样的电影在开发中是否正常;如果不是,则可能是某种解析错误(即该电影的 IMDB 页面不符合 gem 预期的结构)。 问题是我没有主动抓取页面。我为获取 URL 所做的基本上是在我自己的机器上本地生成 URL,将 URL 添加到数据库中的相应电影中,在生产中,只需说“movie.poster”即可获取 URL 并将其放入 html img 标签。因此,当我在生产环境中运行应用程序时,我什至根本没有使用 imdb gem。 【参考方案1】:

IMDB 阻止将他们网站上的图片直接链接到其他网站,我认为 previous question 涵盖了该主题。

解决此问题的最简单方法是下载图像并自行托管,而不是链接 IMDB 的副本。或者,您可以调查其他电影数据库,看看它们是否可以提供您想要的东西 - this question on IMDB APIs 的答案列出了一些。 The Movie DB API 看起来不错。

【讨论】:

感谢您指出我怀疑的问题并提供一些替代方案! :)

以上是关于IMDB 海报 URL 返回推荐被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security 总是返回 403 被禁止,访问被拒绝

Spring Security 总是返回 HTTP 403 访问被拒绝 [关闭]

curl获取网页被拒绝求助

使用 BeautifulSoup 基于属性提取图像 src

Spring Boot Jwt 返回访问被拒绝

服务返回代码 5 中的 CreateProcessWithLogonw:访问被拒绝