2010-04-02 4 views
1

Je suis ce qui suit que je récupère le titre de chaque URL à partir d'un tableau qui contient une liste d'URL.Comment faire une boucle de recherche d'un nokogiri dans ruby?

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 

@urls = ["http://google.com", "http://yahoo.com", "http://rubyonrails.org"] 

@found_titles = Array.new 
@found_titles[0] = Nokogiri::HTML(open("#{@urls[0]}")).search("title").inner_html 

#this can go on forever...but 
#@found_titles[1] = Nokogiri::HTML(open("#{@urls[1]}")).search("title").inner_html 
#@found_titles[2] = Nokogiri::HTML(open("#{@urls[2]}")).search("title").inner_html 

puts "#{@found_titles[0]}" 

Comment dois-je former une méthode de boucle pour ce que je puisse obtenir le titre, même si la liste dans @url tableau devient plus long.

Répondre

2

Vous cherchez le map (or collect) method:

@found_titles = @urls.map {|url| Nokogiri::HTML(open(url)).search("title").inner_html } 
+0

Merci pour votre aide rapide, Greg Campell. C'est exactement ce que je cherche. – crayfish

Questions connexes