質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1329閲覧

スクレイピングのサンプルコードを実行するにあたって

NegiCO3

総合スコア9

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/07/22 15:06

編集2018/07/23 16:32

スクレイピングを初めて速攻つまった

1:スクレイピングのサンプルプログラムを実行してみる
2:サンプルプログラムの該当箇所を書き換えて自分の欲しいものに変更してみる

の1で既にわからない状態になってしまいました。

検索して出てきたサンプルプログラムをコピーしたところ

コンソール -bash: require: コマンドが見つかりません -bash: require: コマンドが見つかりません -bash: url: コマンドが見つかりません -bash: charset: コマンドが見つかりません -bash: app/jobs/nokogiri.rb: line 8: 期待してない token `(' のあたりにシンタックスエラー -bash: app/jobs/nokogiri.rb: line 8: `html = open(url) do |f|'

なるほど

追記
なんてことなく ruby nokogiri.rb
ってしたら動きました。

今となってはなぜ頭に ruby をつけてみなかったのか謎で仕方ないですが
とりあえず動きました。

rails new だの
ruby -v だのやっているのになぜ……

試したサンプルはこれ

nokogiri.rb require 'nokogiri' require 'open-uri' url = 'https://qiita.com/search?q=ruby' charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) doc.xpath('//h1[@class="searchResult_itemTitle"]').each do |node| p node.css('a').inner_text end

該当ファイルは

###もうひとつrakeファイルなら、というのを目にしたので

scrape.rake namespace :scrape do require 'open-uri' require 'nokogiri' # スクレイピング先のURL url = 'http://matome.naver.jp/tech' charset = nil html = open(url) do |f| charset = f.charset # 文字種別を取得 f.read # htmlを読み込んで変数htmlに渡す end # htmlをパース(解析)してオブジェクトを作成 doc = Nokogiri::HTML.parse(html, nil, charset) doc.xpath('//li[@class="mdTopMTMList01Item"]').each do |node| # tilte p node.css('h3').inner_text # 記事のサムネイル画像 p node.css('img').attribute('src').value # 記事のサムネイル画像 p node.css('a').attribute('href').value end end
これをコンソールで実行してみたところ /home/vagrant/blog/vendor/bandle/gems/rake-12.3.1/lib/rake/file_utils.rb:10: warning: already initialized constant FileUtils::RUBY /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.3.1/lib/rake/file_utils.rb:10: warning: previous definition of RUBY was here /home/vagrant/blog/vendor/bandle/gems/rake-12.3.1/lib/rake/file_utils.rb:109: warning: already initialized constant FileUtils::LN_SUPPORTED /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.3.1/lib/rake/file_utils.rb:109: warning: previous definition of LN_SUPPORTED was here /home/vagrant/blog/vendor/bandle/gems/rake-12.3.1/lib/rake/file_utils_ext.rb:17: warning: already initialized constant Rake::FileUtilsExt::DEFAULT /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.3.1/lib/rake/file_utils_ext.rb:17: warning: previous definition of DEFAULT was here WARNING: Possible conflict with Rake extension: String#ext already exists WARNING: Possible conflict with Rake extension: String#pathmap already exists /home/vagrant/blog/vendor/bandle/gems/rake-12.3.1/lib/rake/file_list.rb:44: warning: already initialized constant Rake::FileList::ARRAY_METHODS 中略 /home/vagrant/blog/vendor/bandle/gems/railties-5.1.6/lib/rails/engine.rb:648:in `each' /home/vagrant/blog/vendor/bandle/gems/railties-5.1.6/lib/rails/engine.rb:648:in `run_tasks_blocks' /home/vagrant/blog/vendor/bandle/gems/railties-5.1.6/lib/rails/application.rb:440:in `run_tasks_blocks' /home/vagrant/blog/vendor/bandle/gems/railties-5.1.6/lib/rails/engine.rb:457:in `load_tasks' /home/vagrant/blog/Rakefile:6:in `<top (required)>' (See full trace by running task with --trace)

なるほどさっぱりわからん。。。

追記
こっちはさっぱりわからん。

Q1:なにか用意できていないものがある?
open-uriが読み込めなさそうな気配があるが
rubyの標準ライブラリでは……?別途gemでのインストールが必要ですか?
■ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

Q2:書き方、書く場所、置く場所、実行の仕方などに間違いがある
rails new で作成したフォルダの適当な場所に配置して
コンソールから読み込んでいるけど、
rbファイルの配置場所って何か決まりがあるんでしょうか?
rakeファイルはおそらくlib/tasks内で大丈夫かと思うのですが。

  あとはrbファイルはコンソールから読み込めない…とか

差し支え無ければ、
どのリファレンスを読め
あるいはどこかのチュートリアルに従えば理解できる。
など教えていただけると助かります……

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

今までに、Rubyのプログラムを実行したことが一度も無いのですよね?
個々に説明してもしょうが無いと思うので、まずはRubyの入門書を1冊読むのが良いと思います。

投稿2018/07/22 16:37

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NegiCO3

2018/07/23 04:52

ありがとうございます。 これについてうまくいかない原因は、rubyプログラムの実行経験が無いから。ということでしょうか 個別に説明しても、ということは本文には複数の知識や経験不足がある、と判断されたかと思いますが、初めの解決手段としての入門書は たのしいRubyでいいのでしょうか? bashで実行しており、rubyで実行していない、という情報は得られたので、それについても調べてみようと思います。 何について分かっていないのかを知りたいので、可能であればキーワードなどご教示いただけると助かります。
otn

2018/07/23 05:40

「Rubyスクリプトを実行するコマンドはrubyである」ということが分かっていない人が、いったい何を分かっているのだろうか?と思った次第です。 「たのしいRuby」は悪くないと思います。「パーフェクトRuby」を薦める人もいます。 現状スキルによって、適した本が違うので、大きめの本屋で実際に本の中身をぱらぱら見て選ぶんだ方が良いです。
NegiCO3

2018/07/23 07:49

スキルについてはまっさらに程近い状態のため、まずは入門書籍などを購入してみます。 そんなこと、と思われるかもしれませんが まずは、.rbファイルはスクリプトであること スクリプトファイルの実行は ruby コマンドが必要であることを理解しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問