無限スクロールでの読み込み

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

1) 延々とスクロールして、コンテンツを継続的にロードする
2) 「load more」ボタンをクリックし続け、コンテンツをロードする
このチュートリアルではOctoparseでこれらの2つの状況を処理し、すべてのデータを抽出する方法を説明します。
 

 

1) 無限スクロール

 無限スクロールは、JavaScriptまたはAJAXをWebサイトでよく使われる技術です。同一ページ内でスクロールダウンするたびに次々とコンテンツを読むことができ、FacebookのフィードやTwitterのタイムラインなどで採用されています。

 
スクロールするページ、回数、間隔をOctoparseに伝えるだけで、Octoparseは手動スクロールのように行います。
1) スクロールするページに移動します。
 
2) 「高級オプション」から、「スクロールダウン」のオプションを探します。
3) 「読み込み完了後、スクロールダウンを設定する」をチェックします。
4) 「スクロール回数」に回数と「間隔」に間隔の秒数を入力します。
5) 「スクロール方法」を選択します。
6) 「OK」をクリックして設定を保存します。
 
 

ヒント!

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

 

2) 「Load more」ボタンをクリックする

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

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

Health.usnews.comを例として説明します。[タスクファイルをダウンロードする]

1) 対象ページに移動します。
2) 「Load More」ボタンをクリックします(左クリックでリンクが動作するなら、右クリックします)。


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


4) ワークフローモードに切り替えると、生成されたワークフローが表示されます。
  •   ワークフローから「次のページをクリックする」アクションをクリックします。
  • 「高級オプション」から「AJAXでページを読み込む」を選択し、タイムアウトを設定します(通常、1秒または2秒)。


ヒント!

「Load More」ボタンを7回クリックしたい場合は、ワークフローから「ページネーション」ループを選択し、「高級オプション」から「ループ終了時」を開くと、実行回数を7に設定します。


5) これからループするリストを作ります(レッスン4を参照)。

6) 各部分から特定のデータフィールドを残してフィールドを必要に応じて変更します。 (レッスン4を参照)。

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

ヒント!

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

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

 

 

関連記事:

Octoparse 7.Xの新機能を見ましょう!

AJAXを扱う方法

ドロップダウンリストを選択する

リストを使ってデータを抽出する

複数のページからデータを抽出する

 

btn_sidebar_use.png
btn_sidebar_form.png