Rubyとnokogiriを用いたスクレイピング

カテゴリ:インターン生ブログ

公開日:2019.03.18 最終更新日:2020.04.07
このエントリーをはてなブックマークに追加

こんにちは。Inglowインターン生の鈴木です。

Ruby歴2ヶ月弱の僕ですが、

今回はRubyとnokogiriを用いたスクレイピングに挑戦してみました。

結論から言うと、思ってた以上に簡単でした。

その方法を簡単に記述します。

スクレイピングとは?

ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラーあるいはウェブ・スパイダーとも呼ばれる。

—wikipediaより引用

つまり、特定のウェブサイトから必要な情報を取り出すことです。

実行環境

Windows10

Ruby2.4.5

Nokogiri1.10.1

準備

Rubyの環境構築は完了している前提で進めます。

まずはnokogiriをインストールします。

nokogiriはRubyでスクレイピングをする場合の定番ライブラリです。

すでにインストールされているか確認する方法は、

nokogiri -v

で確認できます。

インストール方法は

gem install nokogiri

でインストールできます

1 gem installed

と表示されれば完了です。

次に、ファイルを作成して、nokogiriを読み込みます

作成したファイルの先頭に以下の内容を記述します。

require ‘nokogiri’

require ‘open-uri’

これで準備は完了です。

実行

ここから実際スクレイピング作業をしていきます。

試しに、弊社の「ドミナント戦略について。」という記事をスクレイピングしてみます。

require ‘nokogiri’

require ‘open-uri’

[1]読み取るページのURL

url = “https://inglow.jp/weblog/%E6%9C%AA%E5%88%86%E9%A1%9E/%E3%83%89%E3%83%9F%E3%83%8A%E3%83%B3%E3%83%88%E6%88%A6%E7%95%A5%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%80%82/”

[2]URLをnokogiriで取得する

doc = Nokogiri::HTML(open(url),nil,”utf-8″)

[3]読み取る内容を指定

text = doc.xpath(‘//*[@id=”blogDetailArea”]/div/div/div[3]/p’).inner_text

[4]読み取った内容を出力

puts text

出力結果が

となります。

nokogiriでは読み取る内容をcssかxpathで指定することが可能です。

今回は本文の<p>タグで囲まれた内容を表示させてみました。

まとめ

今回はスクレイピングの基本的な技術を記述しました。

応用すれば様々な使い方ができそうです。

スクレイピングそのものはあまり難しいものではないのでぜひ皆さんも挑戦してみてください。


inglow inc.はWebプロモーションとマーケティングオートメーションを2軸とした名古屋本社のデジタルマーケティング専門会社です。一般的なWeb広告運用会社さんは広告運用に主軸をおきますが、当社はあくまでWebプロモーション。クライアントのソリューションに合わせて、Webライター、カメラマンを使い、オリジナルコンテンツを設計する。更にそこへの誘導導線も築き、ここから初めて運用検証、改善フェーズに入る。またマーケティングオートメーション領域では導入支援はもちろん、導入後、広告施策と合わせたキャンペーン設計までWebプロモーション×マーケティングオートメーションを一気通貫で行います。

プロモーションとしてのデジタルマーケティングに関するご相談はお気軽にお問い合わせください。

株式会社inglow
事業ドメイン マーケティングオートメーション導入・伴走サポート
Webプロモーションの戦略立案・実行
メール(お問い合わせ) info@inglow.jp
電話番号 052-218-2660
住所 愛知県名古屋市中区丸の内2-18-22三博ビル7F

一覧へ戻る