Rails 中的跨域代理
我正在寻找一个解决方案/gem/插件来使用 JS 代理加载任何网站的 HTML。我正在制作类似 Facebook 状态更新(添加链接)表单的内容,该表单会抓取将显示为缩略图的图像链接。
I'm looking for a solution/gem/plugin to proxy load the HTML of any site with JS. I'm making something like Facebook's status update (add link) form which crawls the link for images which will be displayed as a thumbnail.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你想获取页面,你有很多选择,从 Rails 核心的
Net::HTTP
到使用的
curb
gem卷曲库。如果您想解析页面以提取图像,您可以使用 nokogiri gem,它允许您使用 CSS 选择器解析 HTML。
如果您正在执行大量此类请求,并且不希望 Rails 承担简单代理的全部开销,那么您始终可以使用
sinatra
gem 来实现此目的,这是一个更强大的功能轻量模型。 Sinatra 可以使用 Rack 基础设施系统构建到完整的 Rails 应用程序中,因此它可以无缝集成。If you want to fetch pages you have a lot of choices, everything from
Net::HTTP
which is part of Rails core, to thecurb
gem which employs thecurl
library.If you want to parse the pages you get to extract the images you can use the
nokogiri
gem which will allow you to parse the HTML using CSS selectors.If you're doing a lot of these requests and don't want the full overhead of Rails for what should be a simple proxy, you could always implement this using the
sinatra
gem, which is a much more light-weight model. Sinatra can be built into a full Rails app using the Rack infrastructure system so it fits in seamlessly.