You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用mechanize gem同时抓取普通图片与rel=icon类型的图标链接

解决方案

你可以通过Mechanize内置的DOM查询方法筛选rel="icon"属性的link标签,提取href并处理路径后,和img标签的图片资源合并即可,调整后的完整代码如下:

require 'mechanize'
url = "https://mywebsite.com/"

agent = Mechanize.new
page = agent.get(url)

# 收集所有img标签的图片地址
all_images = page.images.map(&:to_s)

# 收集所有rel=icon的link标签指向的图标资源
page.search('link[rel="icon"]').each do |icon_link|
  # 自动处理相对路径,转为可访问的绝对路径
  icon_url = page.uri.join(icon_link['href']).to_s
  all_images << icon_url
end

# 输出所有图片资源地址
all_images.each do |img_url|
  puts img_url
end

关键说明:

  • page.search('link[rel="icon"]')基于Mechanize底层依赖的Nokogiri解析能力,通过CSS选择器精准匹配所有图标链接标签
  • page.uri.join(icon_link['href'])兼容站点使用相对路径存放图标的场景,避免抓取到无效地址
  • 最终all_images数组同时包含了img标签的普通图片和link标签的图标资源

内容的提问来源于stack exchange,提问作者SkRoR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:54:00