第6章: Rubyの実践的なアプリケーションの開発

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 コードの説明

  1. ライブラリの読み込み
    require 'nokogiri'require 'open-uri'で、NokogiriとURLを開くためのopen-uriライブラリを読み込んでいます。
  2. HTMLの取得
    URI.open(url)で、指定したURLからHTMLを取得し、Nokogiri::HTMLメソッドで解析用のオブジェクトに変換します。
  3. タイトルの取得
    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 コードの説明

  1. File.open
    File.open('sample.txt', 'r')で、sample.txtファイルを「読み込みモード(r)」で開きます。
  2. 各行の処理
    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 コードの説明

  1. 書き込みモードの指定
    File.open('output.txt', 'w')で、output.txtファイルを「書き込みモード(w)」で開きます。ファイルが存在しない場合は新規作成され、既に存在する場合は内容が上書きされます。
  2. 内容の書き込み
    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に保存されました。"

コードの説明

  1. ウェブページの取得と解析
    urlからHTMLを取得し、Nokogiriを使って解析しています。
  2. ファイルの作成と書き込み
    news_titles.txtを「書き込みモード」で開き、doc.css('h2.title')で取得した各タイトルをfile.putsで書き込んでいます。
  3. 確認メッセージの出力
    ファイルへの保存が完了すると、ユーザーに確認メッセージを出力します。

まとめ

Rubyを使って実践的なプログラムを作成する方法を学びました。ウェブスクレイピングではNokogiriライブラリを利用し、HTMLから特定の情報を抽出しました。また、テキストファイル操作では、ファイルの読み書きの方法を学び、実際にデータをファイルに保存するスクリプトを作成しました。


初心者におすすめ!プログラミングスクールのススメ

未経験でも気軽に!サブスク型プログラミングスクール【Freeks】

プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。

独学の挫折率、驚きの87.5%!

独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。

有料と無料、スクールの違いは?

プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:

  • 受講条件が異なる
  • 学べるスキルやカリキュラム内容が異なる
  • 就職や転職のサポート内容が異なる

どちらが自分に合っているか、よく考えて選ぶのが大事です。

サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!

プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:

  • 未経験者向けのわかりやすいカリキュラム
  • 経験豊富なエンジニアのサポート
  • オンラインで自分のペースで学習可能

なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。

終了後は副業もサポート!

カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。

独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
 ↓ ↓ こちらをクリック ↓ ↓ 

p-school

Recent Posts

第6章: PHPのデータベース操作

PHPを使用してデータベースに…

2週間 ago

第5章: PHPのオブジェクト指向プログラミング(OOP)

オブジェクト指向プログラミング…

2週間 ago

第4章: PHPの関数

プログラミングにおいて、関数は…

2週間 ago

第3章: PHPの配列とコレクション

PHPでの配列とコレクションの…

2週間 ago

第2章: PHPの基本文法

PHPの基本的な構文や使い方を…

2週間 ago