Я использую Selenium-Webdriver, OpenUri и Nokogiri для очистки сайта.Я хочу загрузить определенное изображение с указанного веб-сайта на мой компьютер с Ubuntu.Я пробовал несколько разных методов, но каждый из них выдает свое сообщение об ошибке.
Вот мой базовый код, который открывает веб-сайт и получает URL-адрес изображения (все, что после этого я запускал в своей консоли pry):
require 'open-url'
require 'selenium-webdriver'
require 'nokogiri'
require 'uri'
url = "https://www.google.com/"
browser = Selenium::WebDriver.for :chrome
document = open(url).read
parsed_content = Nokogiri::HTML(content)
image = "https://www.google.com" + parsed_content.css('#hplogo').attr('src').value
binding.pry
1) Вот первое, что я попытался загрузить изображение:
download = open(image)
IO.copy_stream(download, '~/image.png')
Для этого я получил следующую ошибку:
Errno :: ENOENT: Нет такого файла или каталога @ rb_sysopen - ~ / image.png from (pry): 44: в 'initialize'
Согласно thisвопрос , я попытался добавить каталог в коде:
FileUtils.mkdir_p(image) unless File.exist?(image)
Но я получил ту же ошибку.
2) Далее я попробовалэто:
open('image.png', 'wb') do |file|
file << open(image).read
end
, и это возвращает
#<File:image.png (closed)
, но файла нет на моем компьютере, и я не могу понять, что означает это сообщение.
3) Далее я попробовал
IO.copy_stream(open(image), 'image.png')
, который просто вернул это:
5482
но сноваЯ понятия не имею, что это значит и тфайла нет нигде.
4) Наконец я попытался
read_image = open(image).read
File.open(image, 'image.png') do |file|
file.puts read_image
end
, который выдает
ArgumentError: неверноaccess mode image.png from (pry): 53: in 'initialize
Что я делаю не так?Был ли я близок с любым из моих подходов?