1

我正在尝试实现类似于 Facebook 的功能:当用户发布链接时,facebook 会抓取链接的网站,并抓取最相关的(大)图像。我在这里和 Quora 上阅读了一些解决方案,但它们主要是关于 PHP 的,并没有真正提供详细的解决方案。我发现的一个答案如下,但作为 Rails 的初学者,我不完全确定如何做到这一点:

1.你可以简单地发出一个 CURL 请求

2.通过HTML解析获取所有图片

3.显示用户选择的Facebook等,或显示第一个(默认)图像。

有没有我可以使用的宝石(即使我需要将它们结合起来)来实现这一目标?我也猜想我也需要 javascript 来允许用户选择最相关的照片,但这不是高优先级。我希望能够从链接中找到一张照片,并将其上传到我们的亚马逊服务器。我们目前正在使用 Carrierwave 来做到这一点。

4

3 回答 3

2

您可以查看一些爬虫的Ruby Toolbox,但我认为没有一个可以完全满足您的需求。

我可能会使用我自己的特定解决方案。因此,使用httpartyRestClient获取网站,解析响应并使用Nokogiri查找图像。选择的逻辑取决于你。

不过有一件事,当用户实际发布链接时,您可能不想这样做,您应该在后台执行此操作,这样您就不会阻止用户界面。我为此推荐了像Sidekiq这样的东西。看看这个截屏视频#366 Sidekiq

于 2012-12-09T10:51:40.150 回答
2

我刚刚发布了一个完全符合您需要的 Gem:

https://github.com/rlarcombe/grabbit

我希望这有帮助!

于 2013-10-14T19:56:20.147 回答
1

我会使用 HTTParty 和 Nokogiri 从页面中获取元数据。如今,大多数页面都使用 facebook 开放图形标签,其中通常包含可用于创建良好缩略图的图像/标题/描述。

这里有一篇关于抓取 FB open graph tags 的好帖子:How to parse og meta tags using httparty for rails 3

于 2013-07-16T19:05:00.217 回答