Ruby を使用した Web スクレイピング – チュートリアル

公開: 2017-08-24

Web データの著しい増加と指数関数的な成長により、さまざまな分野で新たな道が開かれました。 製造部門からサービス部門に至るまで、データは世界中の企業が進化する時代に対応するために採用する不可欠な要素です。 Web データは、競争と市場に関する情報の宝庫であるだけでなく、内部プロセスと運用を改善するために使用できる洞察も提供します。

Web スクレイピングは、ターゲットを絞ったオンライン データを抽出して、分析エンジンや BI ツールでさらに使用できるようにします。 Webスクレイピングの目的は依然としてさまざまです –

  • データ抽出は、ビジネスを宣伝し、製品/サービスを宣伝する効果的な方法です
  • ユーザー、消費者、および Web 訪問者は、サービスまたは製品に関する必要な情報を取得できます。
  • 企業は、それぞれの市場シェアを拡大​​するための戦略と計画に関する競争力のある情報を得ることができます。
  • ブランドは、人々の間のソーシャル メディアでのやり取りを通じて、ブランドに関する一般的な認識を知ることができます。 これにより、マーケティング チームは、このオーディエンスのペルソナに特化した関連するマーケティング メッセージを考案して展開し、コンバージョンの可能性を高めることができます。
  • 企業は、ターゲット ユーザーのニーズ、問題点、好みをより明確にすることができます。 この貴重なインテリジェンスを使用して、製品開発を正しい方向に進めることができます。

Web データを構造化し、ノイズを取り除き、機械可読形式にエクスポートできたら、どんなメリットがあるか想像してみてください。 Ruby を使用してこれを行う方法を見てみましょう。

コーディング スクリプトの選択

データの抽出と Web スクレイピングの実際の実装は、簡単なことではありません。 CSS、HTML、および適切なコーディング スクリプトに関する初歩的な知識があれば、作業はスムーズに進みます。 コーディング スクリプトの選択は、このコンテキストで重要な役割を果たします。 Ruby が市場で話題になっている理由を見てみましょう。

初めて Web スクレイピング プログラムを立ち上げようとしている場合、Ruby は信頼できるスクリプト言語の役割を果たすことができます。 この言語の比類のない人気にはかなりの数の理由があります。以下の理由は、この言語が非常に効果的である理由を理解するのに役立ちます!

  • 強力なスクリプト: Ruby-On-Rails は、Web スクレイピング用の非常に強力で効果的なスクリプトです。 初めての人や初心者にとって、この特定の言語は強力なリソースであることが証明されています.
  • 信頼できるコミュニティ: Ruby には、信頼性と信頼性の高いコミュニティを形成する強力な開発者チームが付属しています。 何百万ものドキュメントがあるので、大きな問題はありません!
  • 簡単なインストール: インストール手順は十分に文書化されており、従うのはかなり簡単です。

これらは、Ruby が Web スクレイピングに不可欠なオプションである理由の一部です。 これらのプロセスはデータ抽出プロセスの実行に不可欠であるため、セットアップとインストールは最適に行う必要があります。 これは、プロセス全体を支援するための包括的なチュートリアルです。

ステップバイステップガイド

始める前に、特定の点について明確にしましょう。 このチュートリアルは Mac ユーザーを対象としています。別のマシンを使用している場合、初期設定プロセスが若干異なる可能性があります。 次に、このプログラムは Nokogiri を使用します。これは Web ページを「Ruby オブジェクト」に変換できるため、Web スクレイピング プロセスが簡素化されます。 これら 2 つの要因を念頭に置いて、プロジェクトに着手できます。

このガイドでは、中古車の olx の最初の 100 件のリストの見出しをスクレイピングします。

セットアッププロセス

Ruby を使用して Web 抽出の完全なセットアップを開発するための基本的な要件は次のとおりです。

  • デスクトップであろうとラップトップであろうと、コンピューターには Ruby がインストールされている必要があります。 あなたが Mac 愛好家なら、仕事の半分は終わっている。
  • テキストエディタが必要です。 これは、プログラム コマンドを書き留めるために必要です。 お使いのコンピューターにオプションが組み込まれていない場合は、Sublime Text をダウンロードしてみてください。 エキサイティングな機能とクールなコントロールを備えたこのテキスト エディターは、コーディングをエキサイティングで興味深いものにします。
  • もう 1 つの必要条件は、HTML と CSS の使用に関する深い知識です。 Web スクレイピングの技術をマスターしようと計画している場合、CSS と HTML の知識は非常に重要です。
  • Ruby の知識を得る。 このコンテキストでは、少しの情報が不可欠です。 いくつかのオンライン コースをチェックして、知識ベースを向上させることができます。 これらのプロセスと要因が整ったら、重要なステップを開始する時が来ます。

ステップ 1: 依存関係のインストール

インストール プロセス中に、3 つの便利な Ruby Gem に関する完全な情報を得るようにしてください。 これらの 3 つのオプションは次のとおりです。

  • 鋸切り
  • HTTPパーティー
  • こじ開ける

ノコギリについてはすでに少し説明したので、HTTParty と Pry について説明しましょう。 HTTParty は、Web スクレイパーが HTTP リクエストをスクレイピングしているページに送信するために使用する gem です。 HTTParty を使用して GET リクエストを送信します。GET リクエストは、ページのすべての HTML コンテンツを文字列として返します。 デバッグには、Ruby gem である Pry を使用します。 これは、Web ページのコードを解析するのに役立ち、このセットアップに不可欠なコンポーネントです。

以下のコマンドに従ってマシンで実行し、これらの gem をコンピューターにインストールします。

gem install のこぎり

gemインストールパーティー

宝石をインストールしてこじる

ステップ 2: スクレイパー ファイルの作成

コンピューター上の任意の場所に nokogiri_tutorial という名前のフォルダーを作成する必要があります。 デスクトップはそうするのに最適な場所です。 次のステップは、「Sublime Text」または選択したその他のオプションなどのテキスト エディターをダウンロードし、「web_scraper.RB」という名前のこのフォルダーにファイルを保存することです。 これらの手順を完了すると、依存関係に取り組むことができます。

ステップ 3: HTTP リクエストをページに送信する

「ページ」という名前の変数操作を作成することから始め、スクレイピングしているページの HTTParty GET リクエストと同じであることを確認します。

この場合: https://www.olx.in/all-results/q-cars/

この後、「Pry」と入力できます。 開始(バインディング)」。 web_scraping.Rb ファイルとしてマークされたフォルダーに移動して見つけます。 すぐにデスクトップに保存し、次のコマンドを入力してターミナルを開きます。

cd デスクトップ/nokogiri_tutorial

Web スクレイピング プログラムを実装する準備ができました。 このコマンドを実行して実行できます。

Ruby web_scraper.RB

ターミナルは Pry に変換される必要があり、次のプロセスに取り掛かる前にレイアウトを確認することが不可欠です。 次のステップに進むことができます。 ただし、それを行う前に、選択したターミナルで必ず「exit」と入力し、Pry を終了してから、プログラム フォルダーの元の場所に戻ってください。

ステップ4:ノコギリへ

ここでの目的は、まずこれらの車のリストを NokoGiri オブジェクトに変換して変更することです。これは解析に不可欠です。 変数の作成は重要であり、「parse_page」という名前で新しいものを開発する必要があります。 Nokogiri には、HTML 文字列を Nokogiri オブジェクトに変換する独特の方法があります。 Pry をコードの一番下に置いておくことができます。

次のステップは、Ruby コマンドを含むファイルを保存することです。 Pry が自動的に開き、新しい変数「parse_page」を入力する必要があります。 これにより、Olx ページが Nokogiri オブジェクトとして返されます。

同じフォルダーに「cars.html」という名前の HTML ファイルを作成し、parse_page コマンドの結果をコピーしてこのファイルに貼り付けます。 このフォーマットされた HTML データは、後で参照するのに役立ちます。

次のステップに進む前に、ターミナルで Pry を終了します。

ステップ 5: データ解析

データの解析には、プログラミングとコーディングの基本的な知識が必要です。 すべての車のリストの見出しテキストを抽出しようとしているので、cars.html ファイルはクロス チェックに役立ちます。 フォルダーから重要な要素を見つけて、「要素の検査ツール」を使用して検査を実行するか、「ページのソース コード」を表示することもできます。

リストは「content」というクラス名の div 内にあることがわかったので、次のコマンドを実行します

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

車_配列

コマンドを実行するたびに、コーディング レイアウトと配列を確認してください。 解析が完了したら、データ セットを CSV ファイルにエクスポートする必要があります。

ステップ 6: データ ファイルを CSV にエクスポートする

ステップ 6 に到達すると、スクレイピング プロセスが正常に完了し、非構造化データが構造化データ セットに変更されているはずです。 ターミナルに戻りましょう。 まだ Pry を使用している場合は終了して、端末がスクレイピング プログラムと cars.html ファイルを含む nokogiri_tutorial フォルダーに移動します。 次のコマンドを入力します。

タッチカーズ.csv

これで、cars_array からのデータを保存できる空白の CSV ファイルが残ります。 このデータを新しい CSV ファイルに書き込む簡単なスクリプトを作成すると、構造化された自動車リスト データが CSV ファイルに作成されます。 これにより、必要に応じて処理および操作が容易になります。

別れの思い

願わくば、Ruby を使用して Web サイトをスクレイピングする方法の大まかなイメージが得られたはずです。 この新たに習得したスキルを使用して、より複雑で難しいサイトを探索してクロールする時が来ました。