Webスクレイピングは、Webページから大量のデータを効率的に取得する目的で、人間のコピペ作業を自動化するためによく使用される手法です。
OctoparseのようなさまざまなWebスクレイピングツールが普及してきており、多くの分野で活用されていますが、いろんな問題もあります。例えば、WebスクレイピングがWebサーバーを過負荷にし、サーバーの故障につながる場合もあります。ますます多くのWeb所有者がWebスクレーパーをブロックするためにスクレイピング防止技術を装備していて、Webスクレイピングはより困難になっています。それにもかかわらず、ブロックを回避する方法はまだあります。この記事では、ブロックを回避するための5つのヒントについてご説明します。
1. スクレイピングのスピードを落とす
ほとんどのWebスクレイピング作業は、できるだけ早くデータを取得することを目的としています。ただし、Webスクレイピングの場合と比べて、人間がサイトにアクセスするのが遅くなります。したがって、アクセス速度を追跡することで、サイトがWebスクレーパーであるかどうかを判断します。あまりにもアクセスが速すぎえることが判明したら、あなたが人間ではないと疑い、そのアクセスをブロックします。
ですから、Webサイトに過負荷を掛けないでください。リクエスト間に時間遅延を設定し、同時のアクセスを毎回1〜2ページに減らすことができます。Webサイトを優しくすれば、データのスクレイピングを続けることができます。
Octoparseでは、ワークフロー内の任意のステップの待ち時間を設定して、スクレイピングのスピードをコントロールできます。スクレイピングをより人間的にするための「ランダム」な選択肢さえあります。
2. プロキシサーバーを使う
Webサイトが単一のIPアドレスから多数のリクエストがあることを検出すると、IPアドレスをブロックしやすいです。すべてのリクエストを同じIPアドレスで送信しないようにするには、プロキシサーバーを使用できます。プロキシサーバーとは、他のコンピュータの「代理」として他のサーバーと通信するサーバーの事を指します。それは本当のIPアドレスを隠して、設定したIPを使ってWebサイトにリクエストを送ることを可能にします。
もちろん、プロキシサーバーに設定されている単一のIPを使用しても、ブロックされるのはやすいです。IPアドレスのプールを作成し、それらをランダムに使用して一連の異なるIPアドレスを介してリクエストを送る必要があります。VPNなどの多くのサーバーは、IPローテーションを設定するのに役立ちます。
Octoparseクラウドサービスは、それぞれ唯一のIPアドレスを持つ何百台のクラウドサーバーによってサポートされています。抽出タスクがクラウドで実行されるように設定されている場合、リクエストはターゲットのWebサイトでさまざまなIPを介して実行されるため、追跡される可能性が最小限に抑えられます。Octoparseローカル抽出により、ユーザーはブロックされないように手動でプロキシを設定する`ことができます。
3. 異なるスクレイピングパターンを適用する
人間はランダムなクリックや閲覧時間でサイトを閲覧します。しかし、Webスクレイピングは、プログラムされた特定のクローリングパターンに常に従います。そのため、スクレイピング防止メカニズムは、Webサイトで実行された重複的なスクレイピング動作を識別することで、クローラーを簡単に検出できます。
スクレーピングパターンを時々変更して、ランダムなクリック、マウスの動き、またはWebスクレイピングをより人間的にするための待ち時間を組み込む必要があります。
Octoparseでは、3〜5分で簡単にワークフローを設定できます。ドラッグアンドポイントを使用してクリックやマウスの動きを簡単に追加したり、ワークフローをすばやく再構築したりすることで、プログラマーのコーディング時間を大幅に節約し、非プログラマー担当者が独自のスクレーパーを簡単に作成できるようにします。
4. ユーザーエージェントを切り替える
ユーザーエージェント(UA)は、リクエストのヘッダーにある文字列で、Webサーバーに対するブラウザとオペレーティングシステムを識別します。Webブラウザによるすべてのリクエストには、ユーザーエージェントが含まれています。一つだけのユーザーエージェントで異常に多数のリクエストを送信すると、ブロックされるかもしれません。ブロックを回避するためには、ユーザーエージェントの頻度を切り替える必要があります。
多くのプログラマーは、偽造されたユーザーエージェントをヘッダーに追加するか、ブロックされないように手動でユーザーエージェントのリストを作成します。 Octoparseを使用すると、クローラーの自動UA回転を簡単に有効にして、ブロックされるリスクを減らすことができます。
5. ハニーポットトラップに注意する
ハニーポットは、通常の訪問者には見えないリンクですが、HTMLコード内にあり、Webスクレーパーによって見つけることができます。不正なアクセスや攻撃を徹底的に監視して調査する機能を有しています。特定の訪問者がハニーポットページを閲覧すると、そのWebサイトはそれが人間の訪問者ではないことを識別でき、そのクライアントからのすべてのリクエストを抑制またはブロックします。
特定のサイト用のスクレーパーを作成するときは、標準のブラウザを使用してユーザーに隠されたリンクがあるかどうかを慎重に確認することをお勧めします。
Octoparseは、偽のリンクをクリックしないように、正確なキャプチャやクリック操作にXPathを使用します(XPathを使用して要素を見つける方法を参照してください)。
この記事で提供されているすべてのヒントは、ある程度ブロックされないようにするのに役立ちます。Webスクレイピング技術を使って、日々の業務を自動化することができますが、悪用することはできませんね。
OctoparseのようなさまざまなWebスクレイピングツールが普及してきており、多くの分野で活用されていますが、いろんな問題もあります。例えば、WebスクレイピングがWebサーバーを過負荷にし、サーバーの故障につながる場合もあります。ますます多くのWeb所有者がWebスクレーパーをブロックするためにスクレイピング防止技術を装備していて、Webスクレイピングはより困難になっています。それにもかかわらず、ブロックを回避する方法はまだあります。この記事では、ブロックを回避するための5つのヒントについてご説明します。
1. スクレイピングのスピードを落とす
ほとんどのWebスクレイピング作業は、できるだけ早くデータを取得することを目的としています。ただし、Webスクレイピングの場合と比べて、人間がサイトにアクセスするのが遅くなります。したがって、アクセス速度を追跡することで、サイトがWebスクレーパーであるかどうかを判断します。あまりにもアクセスが速すぎえることが判明したら、あなたが人間ではないと疑い、そのアクセスをブロックします。
ですから、Webサイトに過負荷を掛けないでください。リクエスト間に時間遅延を設定し、同時のアクセスを毎回1〜2ページに減らすことができます。Webサイトを優しくすれば、データのスクレイピングを続けることができます。
Octoparseでは、ワークフロー内の任意のステップの待ち時間を設定して、スクレイピングのスピードをコントロールできます。スクレイピングをより人間的にするための「ランダム」な選択肢さえあります。
2. プロキシサーバーを使う
Webサイトが単一のIPアドレスから多数のリクエストがあることを検出すると、IPアドレスをブロックしやすいです。すべてのリクエストを同じIPアドレスで送信しないようにするには、プロキシサーバーを使用できます。プロキシサーバーとは、他のコンピュータの「代理」として他のサーバーと通信するサーバーの事を指します。それは本当のIPアドレスを隠して、設定したIPを使ってWebサイトにリクエストを送ることを可能にします。
もちろん、プロキシサーバーに設定されている単一のIPを使用しても、ブロックされるのはやすいです。IPアドレスのプールを作成し、それらをランダムに使用して一連の異なるIPアドレスを介してリクエストを送る必要があります。VPNなどの多くのサーバーは、IPローテーションを設定するのに役立ちます。
Octoparseクラウドサービスは、それぞれ唯一のIPアドレスを持つ何百台のクラウドサーバーによってサポートされています。抽出タスクがクラウドで実行されるように設定されている場合、リクエストはターゲットのWebサイトでさまざまなIPを介して実行されるため、追跡される可能性が最小限に抑えられます。Octoparseローカル抽出により、ユーザーはブロックされないように手動でプロキシを設定する`ことができます。
3. 異なるスクレイピングパターンを適用する
人間はランダムなクリックや閲覧時間でサイトを閲覧します。しかし、Webスクレイピングは、プログラムされた特定のクローリングパターンに常に従います。そのため、スクレイピング防止メカニズムは、Webサイトで実行された重複的なスクレイピング動作を識別することで、クローラーを簡単に検出できます。
スクレーピングパターンを時々変更して、ランダムなクリック、マウスの動き、またはWebスクレイピングをより人間的にするための待ち時間を組み込む必要があります。
Octoparseでは、3〜5分で簡単にワークフローを設定できます。ドラッグアンドポイントを使用してクリックやマウスの動きを簡単に追加したり、ワークフローをすばやく再構築したりすることで、プログラマーのコーディング時間を大幅に節約し、非プログラマー担当者が独自のスクレーパーを簡単に作成できるようにします。
4. ユーザーエージェントを切り替える
ユーザーエージェント(UA)は、リクエストのヘッダーにある文字列で、Webサーバーに対するブラウザとオペレーティングシステムを識別します。Webブラウザによるすべてのリクエストには、ユーザーエージェントが含まれています。一つだけのユーザーエージェントで異常に多数のリクエストを送信すると、ブロックされるかもしれません。ブロックを回避するためには、ユーザーエージェントの頻度を切り替える必要があります。
多くのプログラマーは、偽造されたユーザーエージェントをヘッダーに追加するか、ブロックされないように手動でユーザーエージェントのリストを作成します。 Octoparseを使用すると、クローラーの自動UA回転を簡単に有効にして、ブロックされるリスクを減らすことができます。
5. ハニーポットトラップに注意する
ハニーポットは、通常の訪問者には見えないリンクですが、HTMLコード内にあり、Webスクレーパーによって見つけることができます。不正なアクセスや攻撃を徹底的に監視して調査する機能を有しています。特定の訪問者がハニーポットページを閲覧すると、そのWebサイトはそれが人間の訪問者ではないことを識別でき、そのクライアントからのすべてのリクエストを抑制またはブロックします。
特定のサイト用のスクレーパーを作成するときは、標準のブラウザを使用してユーザーに隠されたリンクがあるかどうかを慎重に確認することをお勧めします。
Octoparseは、偽のリンクをクリックしないように、正確なキャプチャやクリック操作にXPathを使用します(XPathを使用して要素を見つける方法を参照してください)。
この記事で提供されているすべてのヒントは、ある程度ブロックされないようにするのに役立ちます。Webスクレイピング技術を使って、日々の業務を自動化することができますが、悪用することはできませんね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます