複数のWebページ(URL)からデータを抽出する
フォローするWebページの構造によって、複数のスクレイピング方法がたくさんあります。
このチュートリアルでは、URLリストを通じて複数のWebページからデータを抽出する方法を紹介します。
質問:URLリストはいつ使うのですか?
回答:同じ構造である複数のページからデータを取得したい場合です。例えば、食べログからリスト情報をスクレイピングする時、すべてのページは同じページ構造を使えているため、一回設定されたらすべてのページからデータを抽出することができます。別の例として、ニュース記事などの場合、各記事ページは同じページ構造を使う可能性も高いです。
複数のURLからデータを抽出するには、すべてのURLをループに入力して、その後データ抽出ステップを追加します。Octoparseは、URLを1つずつ読み込み、各ページからデータをスクレイピングします。
「URLリスト」ループを作ると、Octoparseは「次のページをクリック」または「アイテムをクリック」のような余計なステップを作って各ページに入る必要はありません。したがって、データの抽出が速くなります。「URLリスト」の使うタスクがクラウド内で行う場合、タスクは複数のサブタスクに分割され、いくつかのクラウドサーバ上で同時に実行されて、抽出効率も上げられます。
「URLリスト」モードでは、入力したWebページが連続であるかどうかは関係なく、同じページ構造がある限り、リストに追加できます。 Octoparseはリストの各URLからデータを抽出、ページを落とすことはありません。
ヒント! 1. ページ構造が異なるURLは使えますか? 残念ながら、データが一致して正しく抽出されるように、同じページ構造を共有するURLのみが「URLリスト」を使用できます。 「URLリスト」モードの詳細については、次の記事をご覧ください。
2. 一度に追加できるURLの数に制限はありますか? はい。手動で入力する場合は一度に追加できるURLは10,000件です。ファイルからインポートする場合は、最大100万件で追加できます。ただし、URLの長さによって、制限が変更される可能性があります。
3. Octoparseは自動的にURLを収集して追加できますか? 残念ながら、URLを手動で収集してリストに追加する必要があります。Octoparseを使ってURLを抽出 |
URLリストを取得するには、抽出プロセスを3つのステップに分けます:
Octoparseで「URLリスト」ループの作るには2つの方法があります。
1. URLのリストで新しいタスクを作る
1) 「+新規作成」をクリックして、「カスタマイズモード」を選択して新しいタスクを作ります。
2) テキストボックスにURLのリストを貼り付け、「URLを保存する」をクリックします。
「URLプレビュー」に複数行のURLが追加されたとき、「保存」をクリックすると、デフォルトで「URLリスト」ループモードに入ります。
ワークフロー内に「URLループ」(リストをループして開く)が自動的に作成されました。
「URLループ」のステップ、もしくはをクリックすれば、入力したURLが「ループアイテム」に見えます。
3) 「実行前に」を設定します。
Octoparseの実行前の待機時間が速すぎると、ページが完全にロードされないまま抽出ステップを行うことがあり、データが抽出されないや不完全になるかもしれません。これを避けるため、「実行前の待機時間」を設定できます。
ワークフロー下側の「詳細設定」をクリックし、実行前の待機時間を設定します(通常は2秒です)。
2. ワークフローで「URLリスト」ループを作る
1) ワークフローでをクリックして、「ループアイテム」を追加します。
2) 「ループアイテム」のステップをクリックし、基本設定で「ループモード」に「URLリスト」を選択します。
3) 編集ボタンをクリックし、URLのリストを入力/貼り付けます。「保存」をクリックして設定を保存します。
ワークフローで「Webページを開く」アクションが自動的に生成されます。「ループアイテム」をクリックすると、追加されているURLのリストが表示されます。
4) 「実行前に」を設定します。
Octoparseは、データ抽出を始める前にリストの各URLを読み込みます。しかし、ページが完全に読み込まれない場合、データを抽出するときや、次のステップを行う際に問題が発生することもあります。抽出を開始する前、「実行前に」(2秒を推奨)を設定する必要があります。
「URLリスト」ループが作成されたので、Webページ上のデータを抽出できます。
関連記事:
From: https://helpcenter.octoparse.jp/hc/ja/articles/4408467829138