我正在使用Selenium-Webdriver、OpenUri和Nokogiri来爬取一个网站。我想将该网站上的特定图片下载到我的Ubuntu电脑上。我尝试了几种不同的方法,但每一种方法都会出现不同的错误信息。
这是我的基本代码,它打开网站并获取图像URL(在此之后,我在我的pry控制台中运行以下操作):
为此,我收到了以下错误信息:
这是我的基本代码,它打开网站并获取图像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 来自(pry):44:'initialize'
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
我做错了什么?我的任何尝试都接近了吗?
参数错误:无效访问模式image.png 来自(pry):53:'initialize
输出是什么意思?