如何刮刮"数据:图像" URI的;遇到Errno :: ENAMETOOLONG?

时间:2014-04-22 19:29:42

标签: ruby web-scraping data-uri

我一直在尝试编写一个脚本,按照概述的方式为图像绘制页面 " Save all image files from a website"

我用另一个页面测试了该方法并且它工作正常,但是在插入我的链接以获取数据时:图像URI,如下所示:

data:image/jpg;base64,/9j/4FEJFOIEJNFOEJOIAD//gAQTGFGRGREGg2LjEwMAD/2wBDAAgEBAQEREGREWGRWEGUFBQYGBgYGBgYGB...

我收到以initialize': File name too long开头并以(Errno::ENAMETOOLONG)结尾的错误。

有没有人找到办法处理这样的情况?

1 个答案:

答案 0 :(得分:0)

data:image网址实际上将图片内嵌为基本64.您需要做的就是获取该数据并decode

require 'base64'

File.open(File.basename(uri),'wb'){ |f| f.write(Base64.decode64(url[/base64,(.*)/, 1])) }