【ruby】rubyを使ってみた!【初心者】
みなさんご存知の方はご存知かと思いますが、僕実はPHPerなんですよ。
これはね、まずいと思いまして今色んな言語を覚えようキャンペーン実施中でして。その一貫として2年前の春にちょっと手を付けて以来放置し続けて来たrubyに触れてみました。
ルビーをまだインストールされていない方はこちらのサイトをみながらインストールしてみてください!
via atmarkIT
凄い丁寧な解説がついていてわかりやすかったです!
さて。
rubyが入った事を前提に。
まずは数多のプログラミング言語達処女を奪って来た“Hello World!”先輩にテクを伝授してもらいます!
1 | puts "Hello World!" |
え?はや!
早漏かよ!Hello World先輩、早いです。笑
1 2 3 4 5 | public class helloworld { public static void main(String[] arg) { System.out.println( "Hello World!" ); } } |
javaちゃんで同じことしようと思ったらこのありさまですよ。
rubyちゃんは余程の名器だったのでしょう…。
ごめんなさい、あんまりやり過ぎるとGoogle Adsense停止されてしまうのでここら辺で。
さてさて。
ひき続きどんどん初々しいrubyちゃんを開発していきます。
1 2 3 4 | #getsで文字列の入力 print "文字列を入力してください:" input = gets puts input |
入るのも早いです。
すらすらと打ち込めます。javaちゃんとは大違いですね。笑
でも今改めてrubyを触ってみて思うのは本当にいい加減な言語なのだなあと。
こんなもの大人数で共同開発したら大変なことになる気がします。rubyは少数精鋭って以前聴いた事があったのですが、その言葉が妙にしっくりきました。
さてさて。
Hello World!先輩が開発したら次はFizzBuzz先輩の出番です。
FizzBuzz先輩も多くのプログラミング言語を手玉にしてきた猛者です。そんな猛者とrubyちゃんが一戦交えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ( 1 .. 100 ). each do |num| if num % 3 == 0 if num % 5 == 0 puts "FizzBuzz" else puts "Fizz" end else if num % 5 == 0 puts "Buzz" else puts num end end end |
もはやセミコロンがないことに違和感を感じ始めました。早いっす!笑
ちなみにrubyでは(1..100)で1〜100って意味になるそうで!凄い便利ですよね!!流石の名器にFizzBuzz先輩も…ry
でもでも!
僕の勝手なイメージですがrubyといったらスクレイピングのイメージがあります。
この流れでスクレイピングを言うとちょっと卑猥な響きがしますがそんなことないです。有名なものだとホームページのタイトルやサムネイルを拾って来たりすることができます。
さて。
nokogiriを落としてきましょう。
via Nokogiri を使った Rubyスクレイピング [初心者向けチュートリアル]
via 最初に知っておけば良かったbundlerの使い方 rails編
まずは
1 | gem install nokogiri |
とターミナルにブチ込みます。次に作業ディレクトリを作成します。
そうしたら
1 | cd 作業ディレクトリ名 |
で作業ディレクトリに移動し、
1 | bundle init |
と打ってください。
おそらくGemfileが作成されるはずです!
そうしたらそのGemfileに
1 | gem 'nokogiri' |
と追記し、
1 | bundle install |
ターミナルに上の文章を打ち込みgemをインストールしてください!
はい。
もうあなたはnokogiri使いになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 | require 'open-uri' require 'nokogiri' url = 'http://mokabuu.com' charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri:: HTML .parse(html, nil , charset) puts doc.title |
きたー!
1 2 | PC名:hogehoge$ ruby scrape_mokabuu.rb mokabuu.com | サラブレッドバンビ → ”競走馬のような速さ・体力”と”牡鹿のような突破力”で目標に向かってどん欲に突き進みます。 |
見事にスクレイピングされました!!!
これ、気象庁のHPのお天気情報等をスクレイピングしてくるアプリとか作れたら楽しいなって思いました!!!友人のblogのタイトルを定時に拾ってくるアプリとかでも楽しいなと思います。
一回勉強がダルくなって辞めたrubyを再開したわけですが、「javaやC#あたりから1つ」と「phytonやrubyあたりから1つ」使えると良いと聴きruby試してみました。
javaやrubyがもうちょいまともに使えるようになったらphytonもいじいじしてみたいなって思います!とりあえずPHPer卒業目指して頑張ります。笑
※記事でいう早いとは書くのにてっとり早いと言うだけで処理速度は遅いです。笑