スクレイピングした結果をrailsのviewを通してブラウザに出力したいのですが、どこに記述をしたらいのかわからず困っています。
例えば、
require 'open-uri' require 'nokogiri' url = 'http://www.yahoo.co.jp/' user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36' charset = nil html = open(url, "User-Agent" => user_agent) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) puts doc.css('#topicsfb > div.topicsindex > ul.emphasis > li:nth-child(1) > a').text
を実行するとヤフーのトップページが取得できるのですが、コンソール上でのやり方しかわかりません。
これをviewを通してブラウザに出力したいのですが、どの部分をコントローラーに、どの部分をviewに記述したらいのかわかりません。
一応railsを使ってwebサイトを立ち上げたりしたのですが、練習でツイッター的なサイトを作ってそれをアレンジしただけなので、恥ずかしながら肝心な基礎が抜けていると思います。
例えばputs(1+1)で2が出力されるのでしょうが、それをrailsを通してブラウザ上に「2」と出力したいとき、どうしたらいいのかわかりません。(どの部分をコントローラーに、どの部分をviewに記述したらいのわからない)
いろんなサイトや、海外の動画も見たのですが、rubyのコンソール内で完結しているものばかりでブラウザへの出力方法があるサイトは見当たりませんでした。
おそらく基礎的すぎて説明する必要もないことなのでしょうが、もしわかる方がいれば教えてください。
(一応、こうなんじゃないか?と思いやってみたコードですが、全く違うと思います。というか違いました)
コントローラー
def top require 'open-uri' require 'nokogiri' url = 'http://www.yahoo.co.jp/' user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36' charset = nil html = open(url, "User-Agent" => user_agent) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) end
ビュー
<%= puts doc.css('#topicsfb > div.topicsindex > ul.emphasis > li:nth-child(1) > a').text %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/28 10:07
2017/09/28 11:24
2017/09/28 11:32
2017/09/28 11:57
2017/09/28 12:13
2017/09/28 12:37
2017/09/28 13:12
2017/09/29 00:31
2017/09/29 00:55
2017/09/29 05:01
2017/09/29 07:14