我正在编写一个脚本以从网上商店产品页面中获取数据和图像(经所有者批准)
我有一个工作脚本,它循环遍历具有 20042 个产品 URLS 的 CSV 文件,以获取存储在 CSV 文件中的所需数据。我需要做的最后一件事是保存产品图片。
我有这个代码(感谢这个线程中的 Phrogz )
URL = 'http://www.sample.com/page.html'
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'uri'
def make_absolute( href, root )
URI.parse(root).merge(URI.parse(href)).to_s
end
Nokogiri::HTML(open(URL)).xpath('//*[@id="zoom"]/@href').each do |src|
uri = make_absolute(src,URL)
File.open(File.basename(uri),'wb'){ |f| f.write(open(uri).read) }
end
这对于单独的 URL 来说运行得很好,但我正在努力让它工作并在我的主脚本中的 CSV 文件中循环访问 URL,如下所示:
# encoding: utf-8
require 'nokogiri'
require 'open-uri'
require 'csv'
require 'mechanize'
@prices = Array.new
@title = Array.new
@description = Array.new
@warranty = Array.new
@leadtime = Array.new
@urls = Array.new
@categories = Array.new
@subcategories = Array.new
@subsubcategories = Array.new
urls = CSV.read("lotofurls.csv")
(0..urls.length - 1).each do |index|
puts urls[index][0]
doc = Nokogiri::HTML(open(urls[index][0]))
看起来我需要弄清楚的是如何将网址提供给保存图像的代码,但任何帮助将不胜感激!