3

当社のウェブサイトのデータは簡単にスクレイピングできます。人間がサイトを閲覧しているのか、ツールを閲覧しているのかをどのように検出できますか?

1 つの方法は、ユーザーがページに滞在した時間を計算することです。それを実装する方法がわかりません。自動化されたツールが私の Web サイトからデータをスクレイピングするのを検出して防止するのを手伝ってくれる人はいますか?

ログイン セクションでセキュリティ イメージを使用しましたが、それでも人間がログインして自動ツールを使用する可能性があります。一定時間後に再キャプチャ画像が表示されたら、ユーザーはセキュリティ画像を入力し、再度自動ツールを使用してデータのスクレイピングを続行できます。

別のサイトをスクレイピングするツールを開発しました。したがって、これが自分のサイトで発生するのを防ぎたいだけです!

4

6 に答える 6

9

しないでください。

それはウェブです。誰かが本当にデータをスクレイピングしたいのであれば、それを止めることはできません。私はこれまで何度も何度もそれを行い、彼らが課したすべての制限を回避しました. 実際、制限を設けると、データを取得しようとする意欲がさらに高まります。

システムを制限すればするほど、正当なユーザーのユーザー エクスペリエンスが低下します。悪い考えです。

于 2010-08-19T05:30:28.030 に答える
3

それはウェブです。そこに出力するものはすべて、人間または機械が読み取ることができると想定する必要があります。今日それを防ぐことができたとしても、明日誰かがそれを回避する方法を見つけ出すでしょう. キャプチャはしばらくの間壊れていましたが、遅かれ早かれ、代替手段もそうなるでしょう.

ただし、当面の間、いくつかのアイデアがあります

そして、ここにさらにいくつかあります。

そして私のお気に入りのために。私が出会った賢いサイトの 1 つに、優れたサイトがありました。「私たちについて」のページにあるサポートオフィスの番地は何ですか? というような質問があります。またはそのようなもの。「私たちについて」ページを見つけるには人間が必要です (リンクには「私たちについて」とは書かれていませんが、人が理解できるように似たようなことが書かれています)。オフィスおよびページにリストされている他のいくつか) いくつかの一致を調べる必要があります。現在のコンピューター技術では、真の音声認識や認識を理解できないのと同じように、それを理解することはできません。

「代替キャプチャ」を Google で検索すると、かなりの数が表示されます。

于 2010-08-19T05:20:59.907 に答える
1

これは、誤検知のリスク (および迷惑なユーザー) なしでは実行できません。

人間がサイトを閲覧しているのか、ツールを閲覧しているのかをどのように検出できますか?

できません。スクリーン リーダーやアクセシビリティ ツールなど、人間のためにページを解析するツールをどのように処理しますか?

たとえば、1 つの方法は、ユーザーがページにとどまるまでの時間を計算することです。これにより、人間の介入が含まれているかどうかを検出できます。それを実装する方法はわかりませんが、この方法について考えているだけです。自動化されたツールが私の Web サイトからデータをスクレイピングすることを検出および防止する方法を誰か助けてもらえますか?

自動ツールは検出されず、異常な動作のみが検出されます。異常な動作を定義する前に、通常の動作を見つける必要があります。ユーザーはページをさまざまな順序で表示し、ブラウザーのタブで並行してタスクを実行できます。

于 2010-08-19T05:36:25.457 に答える
1

スクレイパーは、URL を解析し、ページのソース コードを読み取ることで、Web サイトからデータを盗みます。次の手順を実行すると、少なくともスクレイピングが不可能ではないにしても少し難しくなります。

Ajax リクエストは、データの解析を困難にし、解析する URL を取得するために余分な労力を必要とします。

認証を必要としない通常のページでも Cookie を使用し、ユーザーがホームページにアクセスすると Cookie を作成し、すべての内部ページで Cookie が必要になります。これにより、スクレイピングが少し難しくなります。

暗号化されたコードを Web サイトに表示し、読み込み時に JavaScript コードを使用して復号化します。私はそれをいくつかのウェブサイトで見ました。

于 2010-08-19T05:37:10.100 に答える
1

意志があれば道はあるということを記しておく。

そうは言っても、あなたが以前に尋ねたことについて考えてみたところ、思いついた簡単なことがいくつかあります。

  1. 単純な素朴なチェックは、ユーザー エージェントのフィルタリングとチェックかもしれません。一般的なクローラー ユーザー エージェントのリストは、http ://www.useragentstring.com/pages/Crawlerlist/ で確認できます。

  2. データはいつでもフラッシュで表示できますが、お勧めしません。

  3. キャプチャを使用する

それ以外に、他にできることがあるかどうかはよくわかりませんが、答えも見てみたいと思います.

編集:

Google は、SSN を探している場合、50 ページ目以降でキャプチャするという興味深いことを行っています。ユーザーがページに費やす時間を賢く計測できるかどうか、または方程式にページネーションを導入したい場合は、ユーザーが 1 つのページに費やす時間を計算できるかどうかを確認する必要があります。

以前に想定した情報を使用して、別の HTTP 要求が送信されるまでに時間制限を設けることができます。その時点で、キャプチャを「ランダムに」生成することが有益な場合があります。つまり、おそらく 1 つの HTTP リクエストは正常に処理されますが、次のリクエストではキャプチャが必要になるということです。好きなように切り替えることができます。

于 2010-08-19T05:26:20.720 に答える
0

唯一の良い解決策は、データにアクセスできる速度を制限することだと思います。スクレイピングを完全に防ぐことはできませんが、少なくとも、自動スクレイピング ツールの動作速度を、できればデータのスクレイピングを思いとどまらせるレベル以下に制限できます。

于 2010-08-19T05:25:36.083 に答える