0

この Web サイトの最新の 5 つの投稿を返して表示するコードを書きました。しかし、forループを使用してコードを実行すると、空の文字列が返されます。コードは以下のとおりです。

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
site  = "http://metarand.com"
page  = agent.get(site)

for i in 1..5
  puts "#{i}) - #{page.search("#boxes :nth-child(i) .clearfix .blog-title")}"
end

コードの何が問題で、どうすれば修正できますか?

4

3 に答える 3

1

次のようなものが必要だと思います:

(1..5).each {|i| puts %Q~#{i} - #{page.at("#boxes :nth-child(#{i}) .clearfix .blog-title").text}~  }
于 2012-12-25T10:14:24.837 に答える
0
agent = Mechanize.new
site  = "http://metarand.com"
agent.get(site) do |page|
  for i in 1..5
    puts %Q~#{i} - #{page.search("#boxes :nth-child(#{i}) .clearfix .blog-title")}~
  end
end
于 2012-12-25T10:11:34.723 に答える
0

単純な間違い:

puts "#{i}) - #{page.search("#boxes :nth-child(i) .clearfix .blog-title")}"
                                              ^^^

次のようにする必要があります。#{i}

于 2012-12-25T10:13:45.960 に答える