タイトル タイトル

Rubyでスクレイピングを始めたい初学者のための完全ガイド

Rubyを使ってスクレイピングをしたいけれど、「どこから始めたらいいかわからない」と悩んでいませんか?

この記事では、Rubyの基本的な知識を前提に、Excelファイルを読み込み、そのキーワードをGoogleで検索し、1ページ目の検索結果をCSVにまとめるプログラムの実装手順を詳しく解説します。

この記事を読むことで、以下のベネフィットがあります。

  • Rubyを用いたスクレイピングの基本がわかる
  • Excelファイルを活用して複数のキーワードを効率よく処理する方法が理解できる
  • プロジェクトごとにgem(ライブラリ)を管理する方法が学べる
  • 実際に動くプログラムコードを手に入れ、あなた自身のプロジェクトに応用できる

それでは、ステップバイステップで解説していきます!


1. 要件定義:実現したいことを明確にしよう

まずは、何を実現したいのかを整理しましょう。今回の目標は、以下のとおりです。

  • Excelファイルの中にキーワードが記載されている
  • 各キーワードをGoogleで検索し、1ページ目の検索結果を取得する
  • 取得した検索結果をCSVファイルに出力する

これらを自動で行うRubyプログラムを作成するのがゴールです。


2. プロジェクトのセットアップ:Bundlerでgemを管理しよう

プログラムで使用するライブラリ(gem)をインストールして管理するために、Bundlerを使います。

これにより、特定のプロジェクト内で必要なgemのみをインストール・管理できます。

<ステップ>

  1. デスクトップに「google_scraper」というフォルダを作成します。
  2. フォルダに移動します:
   mkdir ~/Desktop/google_scraper
   cd ~/Desktop/google_scraper
  1. Bundlerをインストールし、プロジェクトにセットアップ:
   gem install bundler
   bundle init
  1. Gemfileを編集し、以下のgemを追加します:
   gem 'nokogiri'
   gem 'selenium-webdriver'
   gem 'rubyXL'
  1. 必要なgemをプロジェクトフォルダにインストール:
   bundle install --path vendor/bundle

これで、gemの管理ができるようになります。


3. 設計:プログラムの流れを考える

次に、プログラム全体の流れを設計します。

  1. Excelファイルの読み込み
  • Excelファイル(keywords.xlsx)の中にキーワードが書かれているので、それをRubyで読み込みます。
  1. Googleで検索する
  • Seleniumというツールを使って、ブラウザ自動操作を行います。各キーワードをGoogleで検索し、検索結果を取得します。
  1. 検索結果の保存
  • 検索結果のページタイトルとURLを取得し、CSVファイルに出力します。

この全体の流れをもとに、詳細な実装に移ります。


4. 実装:実際のコードを書こう

それでは、上記の設計に基づいて、コードを書いていきます。

コードは1つのファイルにまとめて作成し、そのファイルを実行する形にします。

Excelファイルの準備

keywords.xlsxという名前のファイルを作成し、A列に検索したいキーワードを入力します。

ファイルは「google_scraper」フォルダ内に配置します。

Rubyコード

次に、以下のRubyコードを同じフォルダ内にgoogle_scraper.rbというファイル名で保存します。

require 'rubyXL'
require 'selenium-webdriver'
require 'csv'

# 1. エクセルファイルの読み込み
workbook = RubyXL::Parser.parse('keywords.xlsx')
sheet = workbook['検索KW']

# A列のデータを取得
keywords = []
sheet.each do |row|
  keyword = row && row[0] && row[0].value
  keywords << keyword if keyword
end

# 2. SeleniumでGoogle検索を行う
driver = Selenium::WebDriver.for :chrome
driver.manage.timeouts.implicit_wait = 10

# 3. 検索結果をCSVファイルに保存
CSV.open('search_results.csv', 'w') do |csv|
  csv << ['Keyword', 'Title', 'Link']

  keywords.each do |keyword|
    driver.navigate.to "https://www.google.com/search?q=#{keyword}"

    # 1ページ目の検索結果の取得
    results = driver.find_elements(css: 'div.g')

    results.each do |result|
      title = result.find_element(css: 'h3').text rescue nil
      link = result.find_element(css: 'a').attribute('href') rescue nil
      csv << [keyword, title, link] if title && link
    end
  end
end

# ブラウザを閉じる
driver.quit

5. プログラムの実行:ターミナルでスクレイピングをスタート

すべての準備が整ったら、ターミナルでプログラムを実行します。

  1. 作成した「google_scraper」フォルダに移動していることを確認します。
   cd ~/Desktop/google_scraper
  1. 以下のコマンドを実行して、Rubyのプログラムを動かします:
   ruby google_scraper.rb

これで、Excelファイルに書かれたキーワードを使ってGoogle検索が行われ、その結果がCSVファイルに保存されます。


6. まとめ:効率的なスクレイピングを習得しよう

今回の記事では、初学者向けにRubyを使ってスクレイピングを実装する流れを解説しました。

以下のポイントが重要です。

  • Bundlerを使ってプロジェクトごとにgemを管理することで、必要なライブラリを効率的に扱える
  • Seleniumを使ったブラウザ自動操作を活用すれば、複数のキーワードを使った検索が自動化できる
  • プログラムの設計段階で全体の流れを把握することが、スムーズな実装につながる

この手法を使えば、キーワードの収集作業が格段に楽になるでしょう。

ぜひ、あなたのプロジェクトでも活用してください。

関連記事

RETURN TOP
タイトル タイトル
制作前に不安を解消!まずはお気軽に無料相談をご利用ください。
無料で相談する
制作前に不安を解消!まずはお気軽に無料相談をご利用ください。
無料で相談する