Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image IMDB海报URL返回引用被拒绝_Image_Heroku_Hotlinking_Imdb - Fatal编程技术网

Image IMDB海报URL返回引用被拒绝

Image IMDB海报URL返回引用被拒绝,image,heroku,hotlinking,imdb,Image,Heroku,Hotlinking,Imdb,在我的RubyonRails应用程序中,我使用imdb gem(https://rubygems.org/gems/imdb)按标题搜索电影,抓取海报url并将其添加到我数据库中的电影模型中。然后在我的视图中,我将该url放在图像源标记中,并向用户显示图像 在本地运行应用程序时,我没有任何问题,但当我将其部署到Heroku时,有时会成功渲染一些图像,但在大多数情况下,它们没有正确显示。我尝试了多种浏览器,当我尝试加载图像时,我收到一条“拒绝引用”的消息,上面说: You don't have p

在我的RubyonRails应用程序中,我使用imdb gem(https://rubygems.org/gems/imdb)按标题搜索电影,抓取海报url并将其添加到我数据库中的电影模型中。然后在我的视图中,我将该url放在图像源标记中,并向用户显示图像

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

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

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

IMDB会阻止其他网站上的图像直接链接,我认为这就涵盖了这个主题


解决这个问题的最简单方法是下载图像并自己托管,而不是链接IMDB的副本。或者,你也可以调查其他电影DBs,看看他们是否能提供你想要的——下面列出了一些答案。看起来是个不错的选择。

我不熟悉宝石,但它似乎是用于使用Nokogiri的信息。我会记下Heroku上失败的电影,看看同样的电影在开发中是否正常;如果不是,那么可能是某种解析错误(即,该电影的IMDB页面没有遵循gem预期的结构)。问题是我没有主动抓取页面。我所做的获取URL的工作基本上是在我自己的机器上本地生成URL,将URL添加到数据库中的相应电影中,在制作过程中,只需说“movie.poster”即可获取URL并将其放置在HTML img标记中。因此,当我在生产环境中运行应用程序时,我甚至没有使用imdb gem。感谢您指出我怀疑的问题并提供一些替代方案!:)