ruby - 保存来自网站的所有图像文件

标签 ruby screen-scraping web-crawler nokogiri

我正在为自己创建一个小应用程序,我在其中运行 Ruby 脚本并保存我博客中的所有图像。

在识别图像文件后,我不知道如何保存它们。任何帮助将不胜感激。

require 'rubygems'
require 'nokogiri'
require 'open-uri'

url = '[my blog url]'
doc = Nokogiri::HTML(open(url))

doc.css("img").each do |item|
  #something
end

最佳答案

URL = '[my blog url]'

require 'nokogiri' # gem install nokogiri
require 'open-uri' # already part of your ruby install

Nokogiri::HTML(open(URL)).xpath("//img/@src").each do |src|
  uri = URI.join( URL, src ).to_s # make absolute uri
  File.open(File.basename(uri),'wb'){ |f| f.write(open(uri).read) }
end

使用代码从此处转换为绝对路径:How can I get the absolute URL when extracting links using Nokogiri?

关于ruby - 保存来自网站的所有图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926675/

相关文章:

arrays - 如何按排序顺序获取重叠范围的计数?

ruby - Ruby 中的反射。通过给定的类名实例化一个对象

python - 我将如何使用 Beautiful Soup 提取此 HTML 元素属性的值?

javascript - 使用 phantomJS 运行源的 javascript

elasticsearch - 如何将内容和页面描述存储到 ElasticSearch

input - 在Scrapy中获取输入值

ruby-on-rails - ActiveRecord 子类化困境

ruby-on-rails - 删除/销毁和编辑路由

python - 数据收集时的IP阻止

php - 使用 Simple HTML Dom 检索关键字元标记内容?