nokogiriでスクレイピングをしているのですが、スクレイピングした結果を配列に格納したいです。
ruby
1$lessonOnclick = [] 2$i=0 3lessons.each do |lesson| 4 $i=$i+1 5 $lessonsOnclick[$i] << lessons.at_css('a')[:onclick] 6 puts $lessonsOnclick[$i] 7end
エラー内容
Ruby
1Traceback (most recent call last): 2 4: from test.rb:38:in `<main>' 3 3: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:237:in `each' 4 2: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:237:in `upto' 5 1: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:238:in `block in each' 6test.rb:40:in `block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
よろしくお願いします...
試したこと
Ruby
1$lessonOnclick = [] 2$i=0 3lessons.each do |lesson| 4 $i=$i+1 5 $lessonsOnclick << lessons.at_css('a')[:onclick] //変更 6 puts $lessonsOnclick[$i] 7end
Traceback (most recent call last): 4: from test.rb:38:in `<main>' 3: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:237:in `each' 2: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:237:in `upto' 1: from /Users/yasoda/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/nokogiri-1.10.3/lib/nokogiri/xml/node_set.rb:238:in `block in each' test.rb:40:in `block in <main>': undefined method `<<' for nil:NilClass (NoMethodError)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/01 01:16
2019/08/01 01:20
2019/08/01 01:25