3

この質問はほとんどのWeb2.0支持者にとって冒涜と見なされることは間違いありませんが、サイトの一部を他の人の任意のWebアグリゲーターに簡単に取り除いてほしくない場合もあると思います。少なくとも十分なので、彼らが本当にそれを望んでいるのなら、彼らは手でそれをするために窮地に立たされる必要があるでしょう。

私のアイデアは、テキストノードをそれぞれの段落内に通常表示される順序で絶対座標で配置し、それらのテキストノードをランダムに乱雑な順序でDOMに格納するスクリプトを作成することでした。もちろん、そのようなシステムを適切に機能させる(適切なテキストの折り返し、配置、スタイル設定など)ことは、自分のドキュメントレンダラーを最初から作成することとほとんど同じように見えます。

また、それをCAPTCHAのようなものと組み合わせて、スナップショットを見て文字などを識別できるスクリーンスクレイパーを妨げるように、テキストを微妙に混乱させることも考えていました。しかし、それはおそらくそれを考えすぎています。

うーん。誰かがこのようなことをするための良い方法をまだ考案しましたか?

4

9 に答える 9

6

スクレーパーが読み取れないものはすべて、検索エンジンも読み取れないことを考慮してください。そうは言っても、ページが読み込まれた後、Javascriptを介してコンテンツをドキュメントに挿入することができます。

于 2008-09-26T13:28:07.370 に答える
4

スクランブルされたページを再構築するために絶対位置を使用しないでください。これは、モバイルデバイス、視覚障害者向けのスクリーンリーダー、および検索エンジンでは機能しません。

キャプチャを追加しないでください。それは彼らがあなたのサイトを見る前に人々を追い払うだけです。

あなたが思いついたどんな解決策もアンチウェブになります。インターネットは共有することであり、あなたは良いことで悪いことをしなければなりません。

何かをしなければならない場合は、Flashを使用することをお勧めします。リンクファームがFlashコンテンツを取得しているのはまだ見たことがありません。しかし、最初の段落で述べたすべての理由から、Flashはアンチウェブです。

于 2008-09-26T13:32:58.717 に答える
3

あなたのアイデアはおそらくスクリーンリーダーも壊してしまうので、注文を台無しにする前にアクセシビリティの要件/法律を確認する必要があります。

于 2008-09-26T13:27:55.123 に答える
3

私は、クライアント側でjavascriptを使用して復号化するTVガイドを見てきました。断固としたスクレーパーを停止することはありませんが、ほとんどのカジュアルなスクリプトを停止します。

すべてのテキストTVエントリは類似ps10825('4VUknMERbnt0OAP3klgpmjs....abd26')しており、ps10825は、ps10825のキーを使用して復号化関数を呼び出す関数です。明らかに、鍵は毎回生成されます。

この場合、99%の人がGreasemonkeyを使用したり、wgetスクリプトを使用して、すべての広告を見ずにTVガイドをダウンロードしたりするのをやめるのが適切だと思います。

于 2008-09-26T13:37:41.183 に答える
1

これを理解するには、いくつかのサイトをスクレイプすることを試みるのが最善です。私は銀行のサイトのようないくつかのかなり挑戦的なサイトをこすりました。スクレイピングを困難にする多くの試みを見てきました(たとえば、暗号化、Cookieなど)。結局のところ、最善の防御策は予測できないマークアップです。スクレーパーは、マークアップで「パターン」を見つけることができることに最も大きく依存しています。パターンが変更された瞬間、スクレイピングロジックは失敗します。スクレーパーは非常に脆いことで有名で、壊れやすいことがよくあります。

私の提案では、目に見えないマークアップをコードにランダムに挿入します。特に興味深いと思われるコンテンツについて。マークアップが呼び出されるたびにスクレーパーとは異なって見えるように、考えられることは何でもしてください。

于 2009-08-16T20:51:07.020 に答える
0

ImageMagickのようなものを使用してSVGですべてのテキストをレンダリングします

于 2008-09-26T13:35:04.000 に答える
0

Alexa.com は、スクレイピングを防ぐためにいくつかの奇妙なことを行います。ここにアクセスして、トラフィックのランク番号を見て ください http://www.alexa.com/data/details/traffic_details/teenormous.com

于 2008-11-19T17:17:51.597 に答える
0

Few of these techniques will stop the determined. Alexa-style garbage-HTML/CSS-masking is easy to get around (just parse the CSS); AJAX/Javascript-DOM-insertion is easy to get around as well, although form authenticity tokens make this harder.

I've found providing an official API to be the best deterrent :)

Barring that, rendering text into an image is a good way to stop the casual scraper (but also still doable)

YouTube also uses javascript obfuscation that makes AJAX reverse engineering more difficult

于 2009-08-26T18:39:15.600 に答える
-1

AJAX呼び出しを介してすべてのHTMLをロードするだけで、ほとんどのスクリーンスクレイパーにはHTMLがDOMに「表示」されません。

于 2008-09-26T13:27:53.673 に答える