■分からないこと
下記コードのNo Method Errorの原因が分かりません。
エラーメッセージは「rb:14:in block in get_data': undefined method
text' for ["class", "ts-h-company-sentence"]:Array (NoMethodError)」と表示されます。
textメソッドは2ヶ所で使っていますが後半の
【"//div[@class='ts-h-company-sentence']"】だけエラーになります。
添付画像のようにbyebugを使ってターミナル上で試した時はテキストを取得でき、実行するとエラーになってしまいます。
原因を教えていただけると助かります。
よろしくお願いいたします。
■該当のソースコード
ruby
1require 'open-uri' 2require 'nokogiri' 3require 'csv' 4require 'byebug' 5require 'kconv' 6 7def get_data(uri, data) 8 companies = data[0] 9 parameters = data[1] 10 html = open(uri).read 11 documents = Nokogiri::HTML(html.toutf8, nil, 'utf-8') 12 documents.xpath("//h1[@class='ts-h-company-mainTitle']").each {|c| companies << c.text} 13 documents.xpath("//div[@class='ts-h-company-sentence']")[1].each {|p| parameters << p.text.strip.gsub(/(\r)/, " ")} 14 return [companies, parameters] 15end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/05 01:15
退会済みユーザー
2019/01/05 01:18
2019/01/05 01:39
退会済みユーザー
2019/01/05 01:41
2019/01/05 01:51
退会済みユーザー
2019/01/05 01:52
2019/01/05 01:57
退会済みユーザー
2019/01/05 02:01 編集
2019/01/05 02:02