我想下载此链接中提供的所有产品图片:
http://www.veromoda.in/vero-moda-women-s-white-coloured-casual-shirt-4.html
我知道如何通过传递每个图像的 URL 来下载单个图像:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
link = 'http://www.veromoda.in/media/catalog/product/cache/1/thumbnail/9df78eab33525d08d6e5fb8d27136e95/1/0/10074424-snowwhite-1.jpg'
agent.get(link).save "images/pic.jpg"
如何通过传递单个 URL 下载该产品的所有图像?
最佳答案
这是在页面中查找所有图像的核心:
require 'nokogiri'
require 'restclient'
doc = Nokogiri::HTML(RestClient.get('http://www.iana.org/domains/reserved'))
images = doc.search('img').map{ |img| img['src'] }
images[0..2] # => ["/_img/2013.1/iana-logo-header.svg", "/_img/2013.1/icann-logo.svg"]
遍历
src
images
中的 URL , get
每个,然后保存它。您可以看到需要对 URL 进行一些修复以使其完全定义,因此这是下载文件任务的一部分。你需要弄清楚如何做到这一点。
您还需要弄清楚如何分辨您想要的图像是什么,而不是广告或导航元素、定位等。
如果目标站点有robots.txt文件,您还需要弄清楚如何成为一名优秀的网络公民并尊重robots.txt文件,并限制您的请求,以免他们的网络饱和并停止他们的服务器,如果您在图像洗劫运行,否则预计会被禁止。
关于ruby-on-rails - 如何下载 URL 中可用的所有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637767/