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

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

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

 

1) 無限スクロール

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

 
スクロールするページ、回数、間隔をOctoparseに伝えるだけで、Octoparseは手動スクロールのように行います。
1) スクロールするページに移動します。
Scraping With Infinitive Scrolling_Step1
 
2) 「Advanced Option」から、「Scroll Down」のオプションを探します。
3) 「Scroll down to bottom of the page when finished loading」をチェックします。
4) 「Scroll times」に回数と「Interval」に間隔の秒数を入力します。
5) 「Scroll way」を選択します。
6) 「OK」をクリックして設定を保存します。
 
 

ヒント!

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

 

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

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

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

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

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


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

Scraping with load more

4) ワークフローモードに切り替えると、生成されたワークフローが表示されます。
  • ワークフローから「Click to paginat」アクションをクリックします。
  • 「Advanced Options」から「Load the page with AJAX」を選択し、タイムアウトを設定します(通常、1秒または2秒)。

Use Ajax for scraping with load more

ヒント!

「Load More」ボタンを7回クリックしたい場合は、ワークフローから「Pagination」ループを選択し、「Advanced option」から「End loop when」を開くと、実行回数を7に設定します。

Scraping with load more button


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


6) 各部分から特定のデータフィールドを抽出します (レッスン4を参照)。

Scraping with Load More button

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

ヒント!

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

Scraping with load more button 

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

 

 

関連記事:

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

AJAXを扱う方法

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

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

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

 

btn_sidebar_use.png