2012-03-30 11 views
0

検索ボットまたはスパムボットは、ページを読み込んでいる間にJavaScriptイベントをエミュレートまたはトリガーできますか?検索ボットやスパムボットは、JavaScriptイベントをエミュレート/トリガーできますか?

+0

どのような条件の下でですか?検索ボットはあなたのページをダウンロードして式を使って嗅ぐことができます。フォームに遭遇すると、何が起こるかを見るためにそれらを駄目にするかもしれません。もしそれがcaptchaに遭遇すれば、それをOCRして、それがそれを上回るかどうかを確かめるでしょう。 Automatorソフトウェアはマウスを動かすことができ、いつもそうであったクリックを引き起こします。これはボットがMMORPGやブラウザ上で動作する方法です。あなたのユースケースは何ですか - あなたのアプリを引き締めていますか? – frumbert

+0

よく私のウェブサイトで見ることができます:www.omerbase.com - アンチスパムのこと。私はスパム/検索ボットがDIVがクリック可能であり、フォーム提出に影響することを理解できるかどうか疑問に思っていました...あなたが悲しいけれども、彼は式でjavascriptを探し出し、HTML内の関係要素を見つけることができます。それはクリック/ホバー/ etcイベントを引き起こすかもしれません...私はこの権利を得ましたか? –

+0

@ZlatanOmerovićあなたのアプリケーションが十分に普及すれば、誰かが「ソースを見る」をクリックしてdivがクリックで何をするかを把握し、それを継続的に行うボットを書くのは時間の問題です。したがって、検索とスパムボットがアクションを引き起こすかどうかに関わらず、誰かがそのアクションを引き起こすボットを書くと仮定してもよいでしょう。 –

答えて

0

Here’s GoogleがヘッドレスWebKitでページを読み込んで、AJAXコンテンツのインデックスを作成する機会を得るなどの理由で他の理由でページを読み込んでいる人。検索ボットは一般的にフォームを提出しません。

私はあなたのサイトを見てきました。保護は完全にクライアント側です。 HTMLフォームは実際にはいくつかのURLに提出するキー/値の記述なので、誰もがこのデータをボットでPOSTできない理由はありません。

例:合法的な訪問者をこのように不利

POST /contact 
/* ... */ 

fullname=SO+test&email=test%40example.com&reason=test&message=test 
また

、これは重要であり、あなたは。 JavaScriptがブロックされたり、読み込みに失敗したり、単に動作しなかったりする理由は多々あります。

+0

はい。一つのことを除いて、あなたは正しいです。 1つのことは、フォームに表示されないように見えます。これは、フォーム内のデータがいっぱいになっているときとAntiSpamボタンがクリックされたときに表示されます。あなた自身をチェックアウトし、フォームのすべての入力項目を調べると、現在私がボットから人間を認識するためにどのように出席しているかがわかります。 :) –

+0

実際には、私は警告を追加した理由の一つですが、スクリプトが失敗しました。私は迷惑メール対策のボタンをクリックしてフォームに記入しましたが、送信ボタンは有効になりませんでした。ヒューマンチェックを自由に追加してください。JavaScriptではしないでください。 –

+0

の長さは、有効なメール、長さなどのフィールドの説明で指定されています... FirebugなどでJSインジェクションを使用してスクリプトをオーバーライドした場合のみ:) –

0

いいえ、検索ボットが静的なHTMLストリームを取得するためです。 JavaScriptコードにあるinit()またはmyObj.init()のような初期化イベントは実行されていません。 jQueryのような外部ライブラリはロードされず、$(document).readyコードや標準の.click()リスナーも実行されません。したがって、検索ボットの作成者が、ページ上にある<script>ブロックをトリガーまたは実行するために意図的に検索ボットを構築する特定の理由がない限り、通常はJavaScriptコードを実行しません。

検索ボットを作成しました。私が気にするのは、ページから&のテキストを抜き出すことだけです。しかし、私は他の誰かのクライアント側のカレンダーコンポーネントやビデオプレーヤーコンポーネントを実行したくありません。そのJSコードを自分のデータベースに挿入して、検索エンジンの結果ページ(SERP)に挿入することはできません。そのため、ブロック<script>のコードでeval()コマンドを実行する必要はなく、JSレイヤーの初期化イベントもトリガーする必要はありません。

検索ボットにHTML DOMが読み込まれると、通常、埋め込まれた外部の.jsファイルがその中に埋め込まれます。したがってJSを実行するには、複数の.jsファイルの文字列を解析し、それらのファイルの連結子を構築してから、ダウンロードしたすべてのファイルを実行しようとする必要があります。これは検索ボット作成者のための余分な仕事であり、純利益はまったくありません。私たちは単に、そのJSコードをSERPのどこにでも表示させたくありません。さもなければ、SERPのJSコードを見るのが悪い検索結果のように見えます。しかし、ボットは<script>タグ&のコンテンツを見ることができますが、クロールするためのリンクを探しているだけです。だから、ボットがJavaScriptを実行することができると思っている人がいるかもしれませんが、実際にはテキストリンクのために解析するだけです。