🦔

Octoparseを使ってGoogle Mapをスクレイピング

2020/12/11に公開

目的

ある種類の店舗のデータリストを作るため。

背景

ある種類の店舗データリストを探したが、データリストがなかったので、収集しようと思ったため。
Octoparseのチュートリアルを参照しながら、やったが理解に苦しんだので、自分のなりの整理用として投稿する。

前提

Octoparseのインストール(フリープラン)

いざスクレイピング!

コンピュータが行ってくれるプロセスは下記になる。

Webページにアクセスする。
→表示されているページ内のある店舗の情報を取得する
→同ページ内の他の店舗のデータを上記と同じように取得する
→表示されているページ内の取得できるデータが無くなったら、次のページに移動する
→上記を繰り返して、取得できる情報が無くなったらプロセスを終了する

Webページを開く

  1. 自身のWebブラウザより、Google mapを開く
  2. 検索ワードを入力する
  3. URLをコピーする
  4. Octoparseを立ち上げ、タスクを作成する
  5. Webページを開くプログラムを作成する

1~3のプロセス

検索かけて、URLをコピーするだけなので問題ないかと思います。

4~5のプロセス

Octorarseを立ち上げて「新規作成」を行い、「カスタマイズタスク」を選択肢しタスクを作成する。
グループ名は自由に設定して問題ないです!
URLの入力は「手動で入力」を選択する。
URLプレビューに(3)で取得したURLを入力する。

ページネーション - 複数のページを開く

ここからは、最初に書いたプロセスを逆順に設定していきます。

  1. 表示されているGoogle mapのバーリストにある次のリストへボタン「>」をクリックする
  2. 操作ヒントにある「単一画像をループクリック」を選択する
  3. ページネーションの設定を「次のページをクリック」にカーソルを合わせると「歯車」のマークが現れるので、それをクリック!
  4. ページネーションの設定は下記画像のようにしております。(重要なのはAjaxのタイムアウト設定です)


上記を行うと、ワークフローにページネーションが追加されます。ページネーションの設定はこれで終わり

ループアイテム - 一覧ページから取得する

取得設定をする前に、現在のページが店舗21~40のリストが表示されているので、
ワークフローにある「Webページ」をクリックして初期ページに戻す。

  1. リストにある店舗を全部選択させる(やり方:店舗1と店舗2を選択する。そうすれば全て選択される)
  2. 各店舗の取得したいデータを一個ずつ選択する
  3. 「選択した要素のテキストを抽出する」を選択する




最終的に画像のように、ページネーションのコンポーネントの中に、データ抽出のループアイテムが入っていればOKです!

データ取得

あとは、簡単です。

  1. 「保存」ボタンを押して、プロセス設定を保存する
  2. 「実行」ボタンをおす。
  3. タスク実行画面で、「ローカル抽出」、「クラウド抽出」等が出てきますが、フリープランの場合は、「ローカル抽出」を選択。
  4. プログラムが起動します。
  5. 終了したら好きなファイル形式で保存して完了!

終わりに

慣れたソフトウェアを使うと、そのソフトウェアの癖に合わせるのが厄介ですよね。
チュートリアルをゆっくり読めば、難しくないのでゼロベースの思考でやってみたください。

参考

https://www.octoparse.jp/tutorial/scrape-data-on-google-maps/#div3

Discussion