【问题标题】:Download images returned in hash from scrapifier?下载从刮板返回的散列图像?
【发布时间】:2014-09-19 23:44:00
【问题描述】:

我正在尝试抓取网站中的图像,并将它们下载到本地文件夹。

我正在使用看起来很简单的 scrapifier gem。

我已经安装了它,制作了一个 scrape.rb 并从终端 ruby scrape.rb 运行它

require 'scrapifier'
'http://www.blog.com'.scrapify(images: :jpg)

这将返回带有信息的哈希,但我想将该信息中的图像下载到本地文件夹。有任何想法吗?谢谢!

【问题讨论】:

    标签: ruby scrape


    【解决方案1】:

    你可以这样做

    require 'scrapifier'
    require 'httparty'
    
    #This will iterate on the array of images and download them
    def extract_images(arr)
        arr.each do |image_url| 
            file_name = File.basename(image_url) 
            File.open(file_name, "wb") do |f| 
                f.write HTTParty.get(image_url).parsed_response
            end
        end
    end
    
    a = 'http://www.amazon.com'.scrapify(images: :jpg)
    extract_images(a[:images])
    

    上面会将照片下载到您当前执行程序的文件夹中

    【讨论】:

    • 这种情况下定义方法应该在执行之前。
    • @Зелёный,哦,是的,我把它放在了一个更好的亚马逊例子中,它有更多的图像。 :)
    • 我让它与 norokiri 一起使用,但您的解决方案也有效。我想知道,我可以得到图像尺寸吗?也许与Rmagick?我只想下载大于 500 像素的图片
    • 另外,这只会抓取 1 个 URL。我希望该程序在网站的所有路径中抓取图像!
    • @Gibson,它适用于所有人,我正在迭代图像数组并下载。我在本地进行了测试,它下载了从 amazon.com 返回的所有图像
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多