【Ruby入門】nokogiriでスクレイピング
  • facebookページ
  • twitterページ
  • 2018.01.16

    【Ruby入門】nokogiriでスクレイピング

    本記事では、スクレイピングを解説します。

    スクレイピングとは、単純に「Webページからデータを抽出すること」と理解すれば十分です。

    HTMLは、要はタグで記述されたデータのかたまりです。

    であれば、タグを手がかりにそこに書かれているデータを抽出できそうですね。

    スクレイピングをもう少し詳しく

    スクレイピングの定義を、Wikipediaに求めてみましょう。

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

    要するに、ウェブサイトから欲しい情報を取り出す技術のようですね。

    本記事ではスクレイピングのツールとしてnokogiriというgemを使います。

    nokogiriのセットアップ

    nokogiriはgemとして提供されているので、とても簡単にセットアップできます。

    このページのInstallationを見ると、以下でインストールできるようです。

    このようなメッセージが返って来ればOKです。

    とりあえずnokogiri

    こちらのGitHub上のサイトでサンプルを見てみましょう。

    冒頭部分のみです。

    何だかよくわかりませんが、どうもdocというオブジェクトに何か入れているようです。

    中身を見るために、とりあえずdocをputsしてみましょう。

    [実行結果]

    よく見るとページのソースっぽいですね。

    サンプルにあるURLに直接アクセスして確認してみると、どうもページのソースそのまま取れたようです。

    それらを使って、ページの内容を取れないでしょうか?

    ではもう少しサンプルを使ってやってみましょう。

    [実行結果]

    うーん、何だか分かりませんね。

    でも、ちょっと待ってください。

    ページを見てみましょう。

    navバーのあたりが取れているようです。

    結果から見ると「doc.css(‘nav ul.menu li a’, ‘article h2’).each do |link|」の行は取得したい対象を書きます。

    では、以下のように差し替えるとどうなるでしょうか?

    [実行結果]

    ページ中にあるaタグの中身が全て取れました!

    お目当のデータを抜き取る

    要素を指定してデータを取れるということが分かったので、もう少し込み入ったことをしましょう。

    Wikipediaの内閣総理大臣のページを見てみましょう。

    ここから総理大臣の一覧を一気にぬきとります。

    ページのHTMLソースにて、伊藤博文のあたりを確認してください。

    tdタグの中のaタグ、ということが分かったので、以下のようにしてみましょう。

    [実行結果]

    出ました!!

    こうやって歴代の総理大臣を取り出すことができました。

    「doc.css(‘table tr td a’)」は、取得したいタグを指定しています。tableタグのtrのtdのaタグを取れ、という指定になります。

    よって、他のaタグの内容も取れてしまいましたが、歴代の総理大臣を取得することができました。

    まとめ

    スクレイピング、本当に便利ですよね。

    自分の好みのサイトを使って、ぜひいろいろ試してみてくださいね!


    Ruby on Railsのフリーランスは高収入でおすすめ!

    Rubyができる方は多くはいないのが現状です。 プロジェクトは右肩上がりで増えているので、エンジニアが全く足りておりません。 Rubyの実務経験が1年以上ある方はフリーランスになることもできるので、ぜひご興味があればポテパンの無料カウンセリングをご利用下さいませ! Ruby案件に関する情報は下記にまとまっていますのでぜひご覧下さい。

    Ruby on Rails案件のイマがわかる!知って見つかる最適案件


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE