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

标签 ruby web-scraping mechanize

试图图片来自 https://en.wikipedia.org/网站使用 Mechanize gem 。我收到 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 的内容进行比较。
取消转义网址,成功了。

image_url = CGI.unescape(image.url.to_s)
size = agent.head(image_url)["content-length"].to_i/1000
这是一个工作Replit .

关于ruby - Mechanize::ResponseCodeError(404 => Net::HTTPNotFound 未处理的响应):,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70091498/

相关文章:

ruby - 在 Mechanize (Ruby) 中跳过大页面

mysql - 如何为数据库表存储单个值?

python - BeautifulSoup - 从页面中抓取多个表?

ruby - 如何抓取具有延迟加载的页面

html - 在网页抓取期间修改 HTML 内容

ruby - 我如何捕获 cookie,然后将其传递给 Ruby/Mechanize(登录的解决方法)?

ruby-on-rails - 具有依赖项的可移植 Rails 应用程序

ruby - ruby 模块中的模块函数、实例方法和类方法有什么区别?

ruby - Ruby 哈希是否有类似 `reject!` 的方法返回匹配项?

python - 如何在 Python 中绕过 Mechanize "AmbiguityError"