Rubyの基礎知識を活かして、実際のアプリケーションを構築する方法を解説します。この章では、実用的なプログラムの開発例として、「ウェブスクレイピングスクリプト」と「テキストファイル操作」の2つを取り上げます。どちらも初学者でも挑戦しやすく、Rubyの活用を実感できる内容です。
6.1 ウェブスクレイピングの基礎
ウェブスクレイピングとは、ウェブページから情報を取得する技術です。例えば、天気情報や商品価格のデータ収集など、Rubyのスクリプトを使って簡単に行うことができます。Rubyにはウェブスクレイピングを効率的に行うための「Nokogiri」というライブラリがあり、これを使ってHTMLやXMLの解析ができます。
6.1.1 環境の準備
まず、Nokogiriを使うためにインストールを行います。ターミナルを開いて、以下のコマンドを実行してください。
gem install nokogiri
6.1.2 基本的なウェブスクレイピングスクリプト
では、簡単なウェブスクレイピングの例として、架空のニュースサイトから記事タイトルを取得するスクリプトを作成してみましょう。
以下は、ニュースサイトのHTML構造の例です。この例では、記事タイトルは<h2 class="title">
タグ内に入っているとします。
<html>
<body>
<div class="news">
<h2 class="title">ニュースタイトル1</h2>
<p>ニュースの内容1</p>
</div>
<div class="news">
<h2 class="title">ニュースタイトル2</h2>
<p>ニュースの内容2</p>
</div>
</body>
</html>
この構造からニュースタイトルだけを抽出するスクリプトを作成します。
require 'nokogiri'
require 'open-uri'
url = 'https://example.com/news'
html = URI.open(url)
doc = Nokogiri::HTML(html)
doc.css('h2.title').each do |title|
puts title.text
end
6.1.3 コードの説明
- ライブラリの読み込み
require 'nokogiri'
とrequire 'open-uri'
で、NokogiriとURLを開くためのopen-uriライブラリを読み込んでいます。 - HTMLの取得
URI.open(url)
で、指定したURLからHTMLを取得し、Nokogiri::HTML
メソッドで解析用のオブジェクトに変換します。 - タイトルの取得
doc.css('h2.title')
で、HTML内の<h2 class="title">
タグをすべて取得し、それぞれのtitle.text
を出力します。
このスクリプトを実行すると、ページ内のニュースタイトルがコンソールに表示されます。
6.2 テキストファイル操作
次に、Rubyを使ったテキストファイルの操作について解説します。Rubyでは、テキストファイルの読み込み・書き込みが簡単に行えるため、ログの保存やデータの加工などに利用されます。
6.2.1 基本的なファイルの読み込み
Rubyでファイルを読み込むには、File.open
メソッドを使います。例として、sample.txt
というファイルの内容をすべて読み込み、出力するスクリプトを作成してみましょう。
File.open('sample.txt', 'r') do |file|
file.each_line do |line|
puts line
end
end
6.2.2 コードの説明
- File.open
File.open('sample.txt', 'r')
で、sample.txt
ファイルを「読み込みモード(r
)」で開きます。 - 各行の処理
file.each_line
でファイル内の各行を取得し、ブロック内でputs line
を使って出力しています。
6.2.3 ファイルへの書き込み
次に、ファイルへの書き込みを行う例です。新しい内容をoutput.txt
というファイルに書き込むスクリプトを見てみましょう。
File.open('output.txt', 'w') do |file|
file.puts "Rubyでファイル操作を学びましょう!"
file.puts "このファイルは自動生成されました。"
end
6.2.4 コードの説明
- 書き込みモードの指定
File.open('output.txt', 'w')
で、output.txt
ファイルを「書き込みモード(w
)」で開きます。ファイルが存在しない場合は新規作成され、既に存在する場合は内容が上書きされます。 - 内容の書き込み
file.puts
で指定したテキストをファイルに書き込みます。
6.2.5 追記モード
既存のファイルに内容を追加するには、ファイルを「追記モード(a
)」で開きます。例として、先ほど作成したoutput.txt
に追加の行を加えます。
File.open('output.txt', 'a') do |file|
file.puts "追記された内容です。"
end
これで、output.txt
の末尾に「追記された内容です。」が加わります。
6.3 応用:ウェブスクレイピングとファイル操作の組み合わせ
ここまで学んだ技術を組み合わせて、ウェブスクレイピングで取得したデータをファイルに保存するスクリプトを作成します。以下のスクリプトでは、ニュースサイトからタイトルを取得し、news_titles.txt
に保存します。
require 'nokogiri'
require 'open-uri'
url = 'https://example.com/news'
html = URI.open(url)
doc = Nokogiri::HTML(html)
File.open('news_titles.txt', 'w') do |file|
doc.css('h2.title').each do |title|
file.puts title.text
end
end
puts "ニュースタイトルがnews_titles.txtに保存されました。"
コードの説明
- ウェブページの取得と解析
url
からHTMLを取得し、Nokogiriを使って解析しています。 - ファイルの作成と書き込み
news_titles.txt
を「書き込みモード」で開き、doc.css('h2.title')
で取得した各タイトルをfile.puts
で書き込んでいます。 - 確認メッセージの出力
ファイルへの保存が完了すると、ユーザーに確認メッセージを出力します。
まとめ
Rubyを使って実践的なプログラムを作成する方法を学びました。ウェブスクレイピングではNokogiriライブラリを利用し、HTMLから特定の情報を抽出しました。また、テキストファイル操作では、ファイルの読み書きの方法を学び、実際にデータをファイルに保存するスクリプトを作成しました。
初心者におすすめ!プログラミングスクールのススメ
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学の挫折率、驚きの87.5%!
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
有料と無料、スクールの違いは?
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
- 受講条件が異なる
- 学べるスキルやカリキュラム内容が異なる
- 就職や転職のサポート内容が異なる
どちらが自分に合っているか、よく考えて選ぶのが大事です。
サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
- 未経験者向けのわかりやすいカリキュラム
- 経験豊富なエンジニアのサポート
- オンラインで自分のペースで学習可能
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
終了後は副業もサポート!
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓