1


0

Javascriptによって読み込まれたiframe内にある特定の広告を見つけるためにWebクローラーを構築する方法

Webサイトで広告のすべてのインスタンスを検索しようとしています。 広告は、javascriptによってロードされるiframe内にあります(javascriptがオフになっている場合はまったく表示されません)。 広告自体の検出は非常に簡単で、フラッシュファイルの名前とhrefのターゲットの両方に常に特定の文字列が含まれています。

これを達成するための最良の「出発点」は何でしょうか? 現時点では、Adobe AIRアプリを検討しています。これは、サイトをクロールし、DOMを調べて広告を見つけ、javascriptを実行してiframeのコンテンツをロードします。 私が考えることができる他のオプションは、Firefoxをプラットフォームとして使用することです(多分GreaseMonkeyまたはSeleniumを使用しますか? このようにFirefoxを活用する方法はわかりません)。

誰かがこれを構築するのに適した何かを知っていますか、それを行うためにFirefoxを使用することについて何か提案がありますか?

'' '' '

追加の詳細:

CPUを集中的に使用することは、実際には問題ではなく、開いているブラウザに依存するものでもありません。 これは、ヘッドレスサーバーで実行する必要はなく、強力なデスクトップボックスで実行されます。 OSも問題ではありません。 広告がローテーションであるため、クローラーが各ページを複数回ロードすると有利です。 クローラーはjavascriptを実行してiframeのコンテンツをロードする必要がありますが、フラッシュファイルを表示できる必要はありません。

3 Answer


3


「ブラウザをクローラーとして」使用する代わりに、ページが言うようにhttp://htmlunit.sourceforge.net/[HTMLUnit]を使用することもできます。

_ _ HtmlUnitは「Javaプログラム用のGUIなしブラウザ」です。 HTMLドキュメントをモデル化し、ページの呼び出し、フォームへの記入、リンクのクリックなどを可能にするAPIを提供します。 あなたの「普通の」ブラウザでするのと同じように。

それはかなり良いJavaScriptサポートを持ち(それは絶えず改良されています)そしてあなたが使いたい設定に応じてFirefoxかInternet Explorerのどちらかをシミュレートして、非常に複雑なAJAXライブラリでも動作することができます。 _ _


1


javascriptが有効になっている場合にのみ広告が表示される場合、クローラーはWebページを読み取ることができないため、問題が発生します。

javascriptコード自体に、追加が表示される場所へのヒントになる可能性のあるものがありますか? もしそうなら、多分あなたはそれをチェックすることができます。

以前にも同様のことを試したことがあり、Pythonでhttp://www.crummy.com/software/BeautifulSoup/[BeautifulSoup]を使用しましたが、本当にうまくいきました。


1


クローラーは必要ないと思います。 単一のページで実行し、リンクを介してインターネットを見回したくないでしょうか?

もしそうなら-あなたはjavascriptをオンにしてページ上で何かを見つけたい。 次に、javascriptを使用する必要があります。

あなたは必要になるでしょう:

  1. サイト :)

  2. そのコンテンツにアクセスするための正しい権利-FFまたはユーザーにグリースモンキーを使用する Operaのスクリプト

  3. このjQueryサンプルに類似したコード:

iframeでアイテムを見つける:

$('iframe').each(function(){
     $(this).contents().find('object').each(function(){
      if($(this).attr('name').match(/regex/)){
        $(this).remove(); //or do whatever You want
       }
      });
    });

注意:iframeコンテンツへのアクセスはブラウザによって異なる場合があり、スクリプトを実行する時間に影響されます