logo
languageJPdown
menu

Python vs Octoparse!初心者向けのYelpスクレイピング方法はどっち?

約5分で読めます

Webスクレイピングというのは、Webサイトから必要な情報を抽出し、それらを読みやすい形式に転換することができます。データに関心を持っている人は、Webスクレイピングに魅力を感じることができると思います。幸いなことに、今ではコーディングせずにWebデータを自動的に抽出する無料のWebスクレイピングツールがあります。

Webコンテンツの構造は非常に複雑です。複数のWebサイトからデータを抽出することさることながら、仮に一つのWebサイトからデータを抽出ことも大変な作業で、多くの時間と労力を費やさなければならないのです。しかし、誰でも容易に一括的にデータを抽出する方法があります。それは、スクレイピングツールを利用して、Web上のデータを自動的に抽出することです。

スクレイピングツールと似ているPythonもWeb上のデータを自動的に抽出できますが、コードを書くことが必要があります。これから、pythonとWebスクレイピングツール、その二つのことについて説明させていただきます。

PythonによるWebスクレイピング

プロジェクト:

  • Webサイト:Yelp.com
  • スクレイピング項目:役職、評価、レビュー数、電話番号、価格帯、アドレス

事前準備:

  • Python 3.7
  • Pycharm —コーディングエラーをチェックし修正するツール
  • Bejson —JSON構造形式のクリーニング

データを抽出するプロセス

  • まず、スパイダーを作成して、Yelpからデータを実行および抽出する方法を設定します。つまり、GETリクエストを送信してから、指示に従って、設定することによって、スクレーパーがWebサイトを読み込みます。
  • 次に、Webページのコンテンツをパソコンが解析し、抽出されたデータをデータ集合ベースに戻します。スパイダーにItemオブジェクトまたはRequestedオブジェクトを返すことを指示されます。
  • 最後に、スパイダーから抽出されたデータを変換します。

 データを抽出する前に、Web構造を理解しなければなりません。コーディングをする時に、常にdivとclassからWebページをチェックしなければいけません。Webサイトを検査する時に、お気に入りのブラウザに移動して右クリックします。 「検査」を選択し、ネットワークの下にある「XHR」タブがあります。店舗名、電話番号、場所、評価など、対応するリスティング情報が表示されます。 「PaginationInfo」を展開すると、各ページに30のリストがあり、合計で6932のリストがあることがわかります。

①クローラー:

 まず、Pycharmを開いて新しいプロジェクトを設定します。次に、Pythonファイルを設定し、「yelp_spider」という名前を付けます。

②ページを開き:

 get_pageメソッドを作成します。これにより、すべてのリストWeb URLを含むクエリ引数が渡され、ページJSONが返されます。また、スクレーパーの検出を避けるために、Webサーバーをスプーフィングするユーザーエージェント文字列を追加しました。

 .format引数を追加して、URLをフォーマットし、エンドポイントがパターンに従うようにします。この場合は「ニューヨーク市のバー」の全ての検索結果が出てきます。

def get_page(self、start_number):

url =“ https://www.yelp.com/search/snippet?find_desc=bars&find_loc=New%20York%2C%20NY%2C%20United%20States&start={}&parent_request_id=dfcaae5fb7b44685&request_origin=user” \ .format(start_number)

③詳細ページへ行き:

 リストページへのURLの収集を成功しました。これで、get_detailメソッドを使用してスクレーパーにそれぞれの詳細ページにアクセスすることを指示します。

詳細ページのURLは、ドメイン名とビジネスを示すパスで構成されます。

 すでにURLのリストを収集したので、https://www.yelp.comに追加されたパスを含むURLパターンを簡単に定義できます。このようにして、詳細ページのURLのリストに返されます。

def get_detail(self、url_suffix):url =“ https://www.yelp.com/”+パス

 次に、スクレーパーをより人間味あるものにするために、ヘッダーを追加する必要があります。

④ヘッダーを追加する

 次に、タグを見つけるために、IFステートメントとFORループの組み合わせを作成しました。タグは主に、会社名、評価、レビュー、電話などを含めています。

⑤ループを作成する

 JSONに返すリストページと異なり、詳細ページは通常HTMLで答えます。したがって、解析にきれいに見えるように、句読点と余分なスペースを取り除きました。

⑥解析:

 これらのページに1つずつアクセスするときに、スパイダーを指示することによって、ページを解析して詳細情報を取得できます。

まず、同じフォルダの下に「yelp_parse.py」という2番目のファイルを作成します。そして、インポートを開始し、YelpSpiderを実行します。

 複数のページに30のリストがあるため、ここでページネーションループを追加します。 この場合は「start_number」というオフセット値は「0」にしてください。クロールが完了すると、数が30に増えます。

Get first 30 listings

Paginate

Get 31-60 listings

Paginate 

Get 61-90 listings….  

 最後に、キーと値を、会社名、評価、電話番号、価格帯、住所などのそれぞれのデータ属性とペアにする辞書を作成します。

Webスクレイピング:

Pythonを使用すると、Webサーバー、ポータル、およびソースコードと直接対話できます。この方法は効果的ですが、プログラミング知識が不可欠です。Webサイトは非常に用途が広いので、スクレーパーを絶えず編集し、変更に適応する必要があります。 SeleniumとPuppeteerも同様です。でも、Pythonに比べると、大規模なデータの抽出には制限はあります。

 Pythonに対して、もう一つのデータ抽出方法があります。それはWebスクレイピングツールです。ここにOctoparseを取り上げましょう。

 Octoparseは、Webページが読み込まれたときにデータ属性を検出するアルゴリズムを備えています。Octoparseは自動的にWebページを巡回し、会社名、連絡先情報、レビューなどのさまざまなデータを読み込めます。

Octoparse自動検出

 yelpを例として取り上げましょう。 Webページが読み込まれると、Web要素が自動的に解析され、データ属性が自動的に読めます。検出プロセスが完了してから、プレビューのところにOctoparseが抽出したすべてのデータが表示されます。そして、ワークフローが自動的に作成されます。ワークフローはスクレイピングロードマップのようなものであり、スクレイパーはこの指示に従ってデータを抽出します。

 Pythonでもデータの抽出が出来ますが、Octoparseのような見えるプロセンスのワークフロー機能がありません。プログラミングはより抽象的なものであり、この分野の専門知識がなければ、データ抽出の作業ができません。

 しかし、Octoparseはそれだけではありません。詳細ページから情報を取得しようと思ったら、橙色の「操作ヒント」のガイドに従って操作してください。

次に、詳細ページに移動できるtitle_urlを選択します。

コマンドを確認すると、新しいステップがワークフローに自動的に追加されます。次に、ブラウザに詳細ページが表示され、ページ内の抽出したいデータをクリックするだけでデータを抽出できます。たとえば、タイトル「ARDYN」をクリックすると、「操作ヒント」ガイドに一連のアクションが表示され、そこから選択できます。 「選択した要素のテキストを抽出する」をクリックして、ワークフローにアクションが追加されます。同様に、上記の手順を繰り返して、「評価」、「レビュー数」、「電話番号」、「価格帯」、「住所」などのデータを抽出できます。

(yelpのビジネス情報をこすります)

 ガイドに従い、アクションを設定します

 すべての設定が完了したら、スクレイピングを実行します。

終わり

 PythonとWebスクレイピングツールはどちらでもデータを抽出できます。ただ、pythonの方がデータを抽出する前に必要なプログラミング専門知識は欠かせません。でも、スクレイピングツールの方が、誰でも簡単に使えることができます。プログラミング知識のない方にも、入手したいデータがあったら、Octoparseでクリックするだけで簡単にデータを抽出することができます。ぜひ、お勧めます!

人気記事

トピックを検索する

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事

  • avatarCASITOMO
    膨大な数の求人情報が掲載されているタウンワーク。目的の求人情報を効率的にリスト化できる方法をご存知でしょうか?その方法を「Webスクレイピング」と呼びます。Webスクレイピングを実行するやり方は2通りあります。 1つ目は、「Python(パイソン)」というプログラミング言語を用いてプログラムを作るやり方。そして2つ目は、「Octoparse(オクトパス)」というWebスクレイピングを作るやり方。今回は、PythonとOctoparseはどちらが初心者向けのやり方なのか?を知っていただくために、両者のWebスクレイピングを比較します。Webスクレイピングに興味がある方はぜひ参考にしてみてください。
    2022.12.12 · 7 min read
  • avatarCASITOMO
    「API」をソフトウェア開発の現場で耳にした、あるいはWebサービスのサイトで目にしたという方は多いでしょう。昨今のシステム開発やWebサービスにおいて、APIは欠かせない技術となっています。そこで今回は、APIが何か気になっている方に向けて、APIの仕組みやメリットなどをわかりやすく解説するので、ぜひ参考にしてみてください。
    2022.10.07 · 5 min read
  • avatarTakahashi
    Webデータ収集を効率化する「Webスクレイピングツール」が数多く登場しています。しかし、Macのスクレイピングに対応しているツールが少ないのが現状です。 iPhone人気もあり、国内ではMacユーザー・アップルユーザーが増え続けています。PC市場でも同様に、年々Macデバイスのシェアが伸びています。そうした背景から、Webスクレイピングツールの「Octoparse」では、MacOSのスクレイピングの対応を求める声が日に日に高まっていました。 そうしたことからOctoparseでは従来のWindows版に加え、ついにMac用ウェブスクレイパーをついにリリースいたしました。Macユーザーのみなさんは早速こちらからダウンロードをしてください。
    2022.07.26 · 5 min read
  • avatarOctoparse
    Webスクレイピングを行うためにさまざまな方法を利用しています。一般的には、プログラミング(コーディング)とツール導入(ノーコード)の2つのやり方があります。この記事では、これら2つの方法を利用してTwitterをスクレイピングしてみます。
    2021.03.01 · 5 min read