私はいくつかのスクレーパーを作成しましたが、最も時間がかかる部分は常に、何をスクレープするか、何をスクレープしないかをサイトのレイアウトを理解しようとしています。私が言えることは、divと内部レイアウトを変更すると、すべてのスクレーパーにとって壊滅的なものになるということです。ConfusedMindのようにすでに指摘されています。
だからここにあなたのための小さなテキストがあります:
レート制限
IPをレート制限するということは、IPをブロックする前に、一定の時間枠内でIPに一定量の検索のみを許可することを意味します。これは最悪の犯罪者を確実に防ぐ方法のように見えるかもしれませんが、実際にはそうではありません。問題は、ユーザーの大部分が、他の何千人ものユーザーと共有することが多いプロキシサーバーまたは大規模な企業ゲートウェイを経由する可能性が高いことです。プロキシのIPをレート制限すると、プロキシとは異なるユーザーがサイトを使用したときに、その制限が簡単にトリガーされます。慈悲深いボットも通常よりも高いレートで実行され、制限をトリガーする可能性があります。
もちろん、1つの解決策はホワイトリストを使用することですが、IPアドレスは時間の経過とともに変化するため、これらのリストを手動でコンパイルして維持する必要があるという問題があります。言うまでもなく、データスクレーパーは、特定のアドレスをレート制限していることに気付いた場合にのみ、レートを下げるか、検索をより多くのIPに分散します。
レート制限が効果的であり、サイトの大規模なユーザーにとって禁止されていないようにするために、通常、レート制限を超えているすべてのユーザーをブロックする前に調査することをお勧めします。
キャプチャテスト
キャプチャテストは、Webサイトでのスクレイピングをブロックしようとする一般的な方法です。アイデアは、機械では読み取れないが人間では読めるテキストと数字を表示する画像を作成することです(画像を参照)。この方法には2つの明らかな欠点があります。まず、キャプチャテストは、ユーザーが複数の入力を行う必要がある場合、ユーザーにとって煩わしい場合があります。次に、Webスクレイパーは簡単に手動でテストを実行し、スクリプトを実行させることができます。これとは別に、キャプチャテストの2、3の大規模なユーザーが実装を危険にさらしています。ソースコードを難読化する
一部のソリューションでは、httpソースコードを難読化して、マシンがそれを読みにくくしようとします。この方法の問題は、Webブラウザーが難読化されたコードを理解できる場合、他のプログラムも理解できることです。ソースコードを難読化すると、検索エンジンがWebサイトを認識して処理する方法も妨げられる可能性があります。これを実装する場合は、細心の注意を払って実行する必要があります。
ブラック
リストサイトをスクレイプすることが知られているIPで構成されるブラックリストは、スクレーパーをブラックリストに登録するために最初にスクレーパーを検出する必要があるため、それ自体は実際には方法ではありません。それでも、IPは時間の経過とともに変化する傾向があるため、鈍器です。最終的には、この方法で正当なユーザーをブロックすることになります。それでもブラックリストを実装することにした場合は、少なくとも月に1回はブラックリストを確認する手順が必要です。