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

Sunday, April 08, 2018 10:33 AM

Webページの構造によって、複数のスクレイピング方法がたくさんあります。このチュートリアルでは、URLリストを使って複数のWebページからデータを抽出する方法を紹介します。

質問:URLリストを使うスクレイピングはいつなるのですか?

答え:同じ構造である複数のページからデータを取得したい場合です。例えば、Yelpからリスト情報をスクレイピングする時、ページの遷移は必要です。ここでは、ページ1、ページ2、ページ3などはすべて同じページ構造を共有しています。また、別の例として、サイトからニュース記事を読む場合、各記事ページは同じページ構造を共有する可能性も高いです。

web scraping with octoparse - demo webpage

web scraping with octoparse - demo webpage 2

 

複数のURLからデータを抽出するには、すべてのURLをループに入れて、その後データ抽出アクションを追加します。Octoparseは、URLを1つずつ読み込み、各ページからデータをスクレイピングします。

「List of URLs」ループを作ると、Octoparseは「Click to paginate」または「Click Item」のような余計なステップを作って各ページに入る必要はありません。ですから、データ抽出が速くなります。「Lists of URLs」の使うタスクがクラウド内で行う場合、タスクは複数のサブタスクに分割され、いくつかのクラウドサーバ上で同時に実行されます。

「List of URLs」モードでは、Webページが連続であるかどうかは関係なく、同じページ構造がある限り、リストに追加できます。 Octoparseはリストの各URLからデータを抽出、ページを落とすことはありません。

 

ヒント!

1. ページ構造が異なるURLは使えますか?

残念ながら、データが一致して正しく抽出されるように、同じページ構造を共有するURLのみが「List of URLs」を使用できます。

List of URLs」モードの詳細については、次の記事をご覧ください。

Octoparseにある5つのループモード

 

スクレイピング作業にはどのループモードが良いでしょうか?

 

2. 一度に追加できるURLの数に制限はありますか?

はい。一度に追加できるURLは20,000件です。ただし、URLの長さによって、制限が変更される可能性があります。

 

3. Octoparseは自動的にURLを収集して追加できますか?

 残念ながら、URLを手動で収集してリストに追加する必要があります。Octoparseを使ってURLを抽出 した後「List of URLs」に追加できます。Octoparse Advanced APIを使うと、アプリケーションにアクセスしなくてもURLリストを変更できます。

 

URLリストを取得するには、抽出プロセスを3つのステップに分けます:

web scraping with octoparse - scraping with a list of urls

 

Octoparseで「List of URLs」ループの作るには2つの方法があります。

1) URLのリストで新しいタスクを作る

2) ワークフローデザイナで「List of URLs」ループを作る

 

 

 

 

 

 

1) URLのリストで新しいタスクを作る

1. 「Advanced Mode」を選択し、「+Task」をクリックして新しいタスクを作ります。

 

2. テキストボックスにURLのリストを貼り付け、「Save URL」をクリックします。

 

Save URL」をクリックすると、ワークフロー内に「Loop Item」(リストの各URLをループする)が自動的に作成されました。

 

「Loop Item」をクリックすると、入力したURLが「Loop Item」に見えます。

Octoparseは、「Extraction URL」に複数行のURLが追加されたとき、デフォルトで「List of URLs」ループモードに入ります。

 

3. 「Wait before execution」を設定します。

Octoparseが速すぎると、ページが完全にロードされないまま抽出ステップを行うことがあり、データが抽出されないや不完全になるかもしれません。これを避けるため、「Wait before execution」を設定できます。

「Loop Item」をクリックし、「Advanced Options」で、待ち時間を設定します(通常は2秒です)。  

 

 

 

 

2) ワークフローデザイナで「List of URLs」ループを作る

1. ワークフローに「Loop Item」を作ります。

 

2. 「Loop mode」に「List of URLs」を選択します。

 

3.   をクリックし、URLのリストを入力/貼り付けます。「OK」をクリックして設定を保存します。

 

ワークフローで「Go to Web Page」アクションが自動的に生成されます。「Loop Item」をクリックすると、追加されているURLのリストが表示されます。

 

 

4. 「Wait before execution」を設定します。

Octoparseは、データ抽出を始める前にリストの各URLを読み込みます。しかし、ページが完全に読み込まれない場合、データを抽出するときや、次のステップを行う際に問題が発生することもあります。抽出を開始する前、「Wait before execution」(2秒を推奨)を設定する必要があります。

 

「List of URLs」ループが作成されたので、Webページ上のデータを抽出できます。

 

 

関連記事:

テキスト/URL/画像/HTMLを抽出する

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

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

待ち時間を設定する

Advanced API

 

btn_sidebar_use.png