🦔
Octoparseを使ってGoogle Mapをスクレイピング
目的
ある種類の店舗のデータリストを作るため。
背景
ある種類の店舗データリストを探したが、データリストがなかったので、収集しようと思ったため。
Octoparseのチュートリアルを参照しながら、やったが理解に苦しんだので、自分のなりの整理用として投稿する。
前提
Octoparseのインストール(フリープラン)
いざスクレイピング!
コンピュータが行ってくれるプロセスは下記になる。
Webページにアクセスする。
→表示されているページ内のある店舗の情報を取得する
→同ページ内の他の店舗のデータを上記と同じように取得する
→表示されているページ内の取得できるデータが無くなったら、次のページに移動する
→上記を繰り返して、取得できる情報が無くなったらプロセスを終了する
Webページを開く
- 自身のWebブラウザより、Google mapを開く
- 検索ワードを入力する
- URLをコピーする
- Octoparseを立ち上げ、タスクを作成する
- Webページを開くプログラムを作成する
1~3のプロセス
検索かけて、URLをコピーするだけなので問題ないかと思います。
4~5のプロセス
Octorarseを立ち上げて「新規作成」を行い、「カスタマイズタスク」を選択肢しタスクを作成する。
グループ名は自由に設定して問題ないです!
URLの入力は「手動で入力」を選択する。
URLプレビューに(3)で取得したURLを入力する。
ページネーション - 複数のページを開く
ここからは、最初に書いたプロセスを逆順に設定していきます。
- 表示されているGoogle mapのバーリストにある次のリストへボタン「>」をクリックする
- 操作ヒントにある「単一画像をループクリック」を選択する
- ページネーションの設定を「次のページをクリック」にカーソルを合わせると「歯車」のマークが現れるので、それをクリック!
- ページネーションの設定は下記画像のようにしております。(重要なのはAjaxのタイムアウト設定です)
上記を行うと、ワークフローにページネーションが追加されます。ページネーションの設定はこれで終わり
ループアイテム - 一覧ページから取得する
取得設定をする前に、現在のページが店舗21~40のリストが表示されているので、
ワークフローにある「Webページ」をクリックして初期ページに戻す。
- リストにある店舗を全部選択させる(やり方:店舗1と店舗2を選択する。そうすれば全て選択される)
- 各店舗の取得したいデータを一個ずつ選択する
- 「選択した要素のテキストを抽出する」を選択する
最終的に画像のように、ページネーションのコンポーネントの中に、データ抽出のループアイテムが入っていればOKです!
データ取得
あとは、簡単です。
- 「保存」ボタンを押して、プロセス設定を保存する
- 「実行」ボタンをおす。
- タスク実行画面で、「ローカル抽出」、「クラウド抽出」等が出てきますが、フリープランの場合は、「ローカル抽出」を選択。
- プログラムが起動します。
- 終了したら好きなファイル形式で保存して完了!
終わりに
慣れたソフトウェアを使うと、そのソフトウェアの癖に合わせるのが厄介ですよね。
チュートリアルをゆっくり読めば、難しくないのでゼロベースの思考でやってみたください。
参考
Discussion