icon
icon

Rubyでライブラリnokogiriを利用して スクレイピングを実行する方法

初心者向けにRubyでライブラリnokogiriを利用して スクレイピングを実行する方法について解説しています。スクレイピングとはWeb上から情報を取得することをいいます。ここではスクレイピングを行うライブラリnokogiriのインストール方法と基本の使い方、実行結果を見ていきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyでライブラリnokogiriを利用して スクレイピングを実行する方法について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ライブラリnokogiriを利用して スクレイピングを実行する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

ライブラリnokogiriとは

webスクレイピングでよく使われるRubyのライブラリーで、nokogiriというライブラリーがあります。他にMechanaizeというライブラリーもあります。

ここにいうスクレイピングとはweb情報を取得したり、加工したりして使用することです。

今回はこのnokogiriというライブラリーを使用してスクレイピングする方法を紹介していきます。

 

ライブラリnokogiriのインストール方法

Rubyのスクリプトの場合、gem install nokogiriでインストールします。Railsプロジェクトでインストールする場合はGemファイルに、gem ‘nokogiri’ と追記して、bundle install しましょう。

 

[PR] 未経験からWebエンジニアを目指す方法とは

ライブラリnokogiriを利用してスクレイピングを実行する方法

nokogiriがインストールできたら早速nokogiriを使ってスクレイピングしてみましょう。ファイル以下のように書いて実行してみましょう。

 

require 'nokogiri'
  require 'open-uri'

url = 'https://techacademy.jp/'

charset = nil

html = open(url) do |f|
  charset = f.charset
  f.read
end

doc = Nokogiri::HTML.parse(html, nil, charset)

puts doc
#=>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

...............................................................................

...............................................................................

..............................................................................

...............................................................................

<meta property="og:title" content="パーソナルメンターがつくオンラインブートキャンプ | TechAcademy [テックアカデミー]">

<meta property="og:description" content="プログラミング学習で、もう挫折しない。

パーソナルメンターがつくオンラインブートキャンプ。">

<meta property="og:url" content="https://techacademy.jp/">



<meta name="twitter:title" content="パーソナルメンターがつくオンラインブートキャンプ | TechAcademy [テックアカデミー]">

<meta name="twitter:description" content="プログラミング学習で、もう挫折しない。

パーソナルメンターがつくオンラインブートキャンプ。">

...............................................................................

...............................................................................

..............................................................................

...............................................................................

 

以上のようにwebサイトから情報を取得していますね。

 

筆者プロフィール

町田 耕

学生時代は会計学専攻。塾講師勤務を経て、企業のCFOとして会社経営に携わる。

会社経営から一線を退いた後、インフラエンジニアの妻の勧めでプログラミングを

独学で始め、プログラミングセミナーなど転々としながら、開発案件に携わるようになる。

現在、フリーランスとして活動しながらテックアカデミーのメンターも勤めている。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。