Как мне сделать цикл поиска нокогири в рубине? - PullRequest
1 голос
/ 02 апреля 2010

У меня есть следующее, что я получаю заголовок каждого URL из массива, который содержит список URL.

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]}"

Как мне создать метод цикла для этого, чтобы я мог получить заголовок, даже когда список в массиве @url становится длиннее.

1 Ответ

2 голосов
/ 02 апреля 2010

Вы ищете метод карты (или сбора) :

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