メインコンテンツにスキップ

ページネーションの処理(無限スクロール)

1年以上前に更新

従来のページネーションを使わなくコンテンツをロードするWebサイトがよく見られます。そのようなサイトは二つの状況があります。

ご参考頂けるために、文字の他に、ビデオも作っております。こちらをクリックしてください。

1. 延々とスクロールして、コンテンツを継続的にロードする(無限スクロール)

2. 「もっと見る」ボタンをクリックし続け、コンテンツをロードする

このチュートリアルではOctoparseでこれらの2つの状況を処理し、すべてのデータを抽出する方法を説明します。

1. 無限スクロール

無限スクロール、別名「エンドレススクロール」とは、JavaScriptやAJAXを使用しているウェブサイトが、ユーザーがウェブページの下部にスクロールすると、動的に追加コンテンツを読み込む手法です。

通常、サイドバーを直接下までドラッグすると、「読み込み中」のサインが表示され、新しいコンテンツがすぐにページに追加されます。

現在Octoparseのスクロールダウン機能を利用して、ページをスクロールしながらデータを抽出することができます。最後まで待つ必要もなく、ページをスクロールしながら、新たに読み込んだデータを抽出します。データ収集のプロセスがより安定したものになり、抽出する時の柔軟性も向上されました。

スクロールするページ、回数、間隔をOctoparseに伝えるだけで、Octoparseは手動スクロールのように行います。

このURLを例として説明します:https://shopping.yahoo.co.jp/search?p=switch


1) 自動検出機能を利用する場合

1.1) Octoparseを起動します。スクレイピングしたいWebページのURLを入力します。「スタート」 ボタンをクリックして進みます。

1.2) Octoparseでページが読み込みされたら、自動的にページ上の内容を識別します。もし自動識別機能をオフする場合は、右上の操作ヒントパネルで 「ウェブページのデータを自動検出」、ページ上の内容を識別します。自動検出とは、自動的にページ上の必要なデータを検出して識別するという役立つ機能です。ポイント&クリックをする必要はなく、Octoparseは自動的に処理します。

1.3) 検出が完了すると、「編集」ボタンをクリックします。

1.4) スクロールタイプ、回数などをご要望に応じて設定することができます。

1.5) 「ワークフローを生成」をクリックして確認し、タスクを作成します。

1.6) 「実行」をクリックして、抽出結果を確認します。


2) 手動で設定する場合

2.1)「Webページを開く」の下にループアイテムを追加します。

2.2) ループアイテムをダブルクリックし、「基本設定」にループモードに「ページをスクロール」を選択します。

2.3) スクロールタイプ、回数、実行間隔などをご要望に応じて設定することができます。

mceclip9.jpg

2.4) データ抽出用のステップを作成して、上記のループアイテムの中にドラッグします。

mceclip12.jpg

2.5) 「実行」をクリックして、抽出結果を確認します。

ヒント!

無限スクロールの設定は簡単ですが、タスクの実行をテストして、スクロール時間が十分か、スクロールが正常に動作ているかどうかを確認することが大切です。

2. 「もっと見る」ボタンをクリックする

無限スクロール以外、一部のWebページでは、AJAXを介してより多くのコンテンツを継続的にロードするため、「もっと見る」ボタンをクリックする必要があります。

ページから利用可能なコンテンツをスクレイピングするために、すべての情報が読み込まれるまで「もっと見る」ボタンを繰り返しクリックするようにOctoparseを設定します。

https://news.yahoo.co.jp/flashを例として説明します。

1) 対象ページに移動します。

2) 「もっと見る」ボタンをクリックします。

3) 操作提案から「ループクリップ」を選択します。これはOctoparseにボタンを繰り返しクリックするよう指示します。

4) ワークフローモードに切り替えると、生成されたワークフローが表示されます。

  • ワークフローから「次のページをクリック」をクリックします。

  • 「詳細設定」から「AJAX読み込み」を選択し、タイムアウトを設定します(通常、1秒または2秒)。

mceclip1.jpg

ヒント!

「もっと見る」ボタンを7回クリックしたい場合は、ワークフローから「ページネーション」ループを選択し、「基本設定」で「実行が次の回数に達する」を7に設定します。

5) これからループするリストを作ります(リストからデータを抽出)。

6) 「ローカル抽出実行」を使ってタスク実行をテストします。Webサイトの構造は異なるので、すべてのステップが正しく実行されているかどうかを確認することが重要です。

ヒント!

1. 抽出ループがページネーションループの内部にある場合は、手動で外に引きずります。

2. 間違って操作が行われた場合は、「操作キャンセル」を使ってアクションを取り消します。

こちらの回答で解決しましたか?