railsでWebスクレイピングを使って画面にQiitaから取ってきたタイトルを表示しようと思ったのですが表示されません。
環境はWSLでrailsのバージョンは6.0.2.2でscaffoldを使って簡単なアプリケーションを作ろうと思いました。
以下はshow.html.erb内でRubyとして実行したものです。
ruby
1require 'nokogiri' 2require 'open-uri' 3 4url = 'https://qiita.com/search?q=ruby' 5 6charset = nil 7 8html = open(url) do |f| 9 charset = f.charset # 文字種別を取得 10 f.read # htmlを読み込んで変数htmlに渡す 11end 12 13doc = Nokogiri::HTML.parse(html, nil, charset) 14doc.xpath('//h1[@class="searchResult_itemTitle"]').each do |node| 15 puts node.css('a').inner_text 16end
これをpタグとして書いたのですが画面内に表示されません。
以下がターミナルにエラーのような形で表示されました。
BodyUpはアプリの名前です。
Bodyup Load (0.7ms) SELECT "bodyups".* FROM "bodyups" WHERE "bodyups"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]] ↳ app/controllers/bodyups_controller.rb:67:in `set_bodyup' Rendering bodyups/show.html.erb within layouts/application /mnt/c/Users/User Name/Ubuntu/rails_app1/myapp/app/views/bodyups/show.html.erb:62: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open
どなたかわかる方おられましたら教えてもらえると助かります。
回答1件
あなたの回答
tips
プレビュー