Ruby 使用Nokogiri从Instagram中提取图像?

Ruby 使用Nokogiri从Instagram中提取图像?,ruby,nokogiri,instagram,Ruby,Nokogiri,Instagram,我正在尝试使用Nokogiri从Instagram中提取图像。我已经尝试了很多事情,我甚至不认为展示我迄今为止所做的是一个好主意 我从以下几点开始: image_url = Nokogiri::HTML(open('http://instagram.com/p/g3mXJ1p109/')) 我注意到Instagram.com上的图片如下: <div class="Image iLoaded iWithTransition Frame" src="http://distilleryimag

我正在尝试使用Nokogiri从Instagram中提取图像。我已经尝试了很多事情,我甚至不认为展示我迄今为止所做的是一个好主意

我从以下几点开始:

image_url = Nokogiri::HTML(open('http://instagram.com/p/g3mXJ1p109/'))
我注意到Instagram.com上的图片如下:

<div class="Image iLoaded iWithTransition Frame" src="http://distilleryimage9.ak.instagram.com/b711daf4508c11e385ff1234c61f9f0f_8.jpg"></div>
它给了我这个:

#<Nokogiri::XML::CDATA:0x767c904 "\nwindow._csrf_token = '88b78a58e333056bcc67e338f06ce786';\nwindow._jscalls = [\n\n['bluebar', 'init', []],\n\n['framework/config', 'init', [{staticRoot: '//d36xtkk24g8jdx.cloudfront.net/bluebar/89c8068'}]],\n\n [\"lib\\/fullpage\\/transitions\",\"bootstrap\",[{\"componentName\":null,\"moduleName\":\"lib\\/ui\\/media\\/DesktopPPage\",\"props\":{\"viewer\":null,\"shortcode\":\"g3mXJ1p109\",\"prerelease\":false,\"staticRoot\":\"\\/\\/d36xtkk24g8jdx.cloudfront.net\\/bluebar\\/89c8068\",\"media\":{\"code\":\"g3mXJ1p109\",\"comments\":{\"nodes\":[]},\"date\":1384805104.0,\"likes\":{\"count\":0,\"viewer_has_liked\":false,\"nodes\":[]},\"owner\":{\"username\":\"marunbai\",\"requested_by_viewer\":false,\"profile_pic_url\":\"http:\\/\\/images.ak.instagram.com\\/profiles\\/anonymousUser.jpg\",\"id\":\"549577518\",\"followed_by_viewer\":false},\"is_video\":false,\"id\":\"592110592901733693\",\"display_src\":\"http:\\/\\/distilleryimage9.ak.instagram.com\\/b711daf4508c11e385ff1234c61f9f0f_8.jpg\"}}}]],\n\n];\n">
#

Nokogiri无法评估JavaScript。因此,如果您查看Nokogiri看到的HTML,您看到的
div
标记将不在那里

但是,页面确实包含一个带有图像源的元元素。您可以从中提取所需的值:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://instagram.com/p/g3mXJ1p109/'))

p doc.at_css('meta[property="og:image"]')['content']
#=> "http://distilleryimage9.ak.instagram.com/b711daf4508c11e385ff1234c61f9f0f_8.jpg"

你需要什么帮助还不清楚。你只是想用nokogiri或者图像的src获取div元素吗?只是图像源
require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://instagram.com/p/g3mXJ1p109/'))

p doc.at_css('meta[property="og:image"]')['content']
#=> "http://distilleryimage9.ak.instagram.com/b711daf4508c11e385ff1234c61f9f0f_8.jpg"