Mechanize::ResponseCodeError(404 => Net::HTTPNotFound 未处理的响应):

Mechanize::ResponseCodeError (404 => Net::HTTPNotFound unhandled response):

尝试使用机械化 gem 从 https://en.wikipedia.org/ 网站上 抓取 图片。当我尝试计算图像大小时,我得到 Mechanize::ResponseCodeError (404 => Net::HTTPNotFound for https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/FP2A3620_%252823497688248%2529.jpg/119px-FP2A3620_%252823497688248%2529.jpg -- unhandled response):

这是我的代码

         def images
          agent = Mechanize.new
          page = agent.get("https://en.wikipedia.org/")
          page.images.each do |image|
            puts image.url
            size = agent.head( image )["content-length"].to_i/1000
          end  
       end

感谢任何帮助。

在维基百科上查看了该图像,它呈现得很好。在新选项卡中打开它,并将浏览器中的 url 与 mechanize 的内容进行比较。

取消转义 url,成功了。

image_url = CGI.unescape(image.url.to_s)
size = agent.head(image_url)["content-length"].to_i/1000

这是一个有效的 Replit