1

件名に特定の文字列が含まれている Google グループの投稿を検索する Chrome 拡張機能を作成しています。ブラウザーから、検索クエリ「subject:」を使用して、検索結果を取得します。結果が 0 または > 0 のいずれかで、結果が表示されるかどうかに応じて、さまざまなアクションを実行します。しわは、たとえば、結果ページのページデータを単純にフェッチすると、

try
  {
  var request = new XMLHttpRequest();
  request.open("GET", url, false);
  request.send(null);
  }
catch (e)
  {
  console.log(e);   
  return;
  }
if (request.status == 200)
  {
  var tmp = request.responseText;
  }

難読化されたデータを取得するだけで、それを読み取ることができません。Document オブジェクトを取得できれば、doc.getElementsByClassName のようなものを使用して特定のクラス名を検索できます。このクラス名は、検索結果がゼロ以外の場合にのみ存在します。

4

1 に答える 1

0

responseTextをdomに変換する方法は次のとおりです。

var page = document.implementation.createHTMLDocument("");
page.documentElement.innerHTML = request.responseText;
// Now you can find things
var thing = page.documentElement.querySelector('#find');

...しかし、一部のページはajax駆動型であり、新しいGoogleグループは確かであるため、これでは必ずしも十分ではありません。
したがって、このページは、ページが読み込まれたときにjsが取得する他のすべてのもののフレームにすぎません。
WebInspectorのネットワークパネルを見て、検索ボタンを押したときに何が起こるかを確認することで、ページが作成するajaxリクエストを複製して複製する方法を理解できる場合があります。
しかし、Googleグループ2はいくつかのファンキーなことをしているので、私には手がかりがありません;)
XMLHttpRequestをオーバーライドして、それを呼び出すものと、準備完了状態が4に変わったときの動作を監視したり、onloadを監視したりするなど、他にもできることがあります。そして、その情報を使用して、どの関数がresponseTextを処理するかを調べ、場合によってはその方法で必要なものを見つけます。しかし、現時点ではそのためのコードを見つけることができず、それがきれいにならないことを知っているので、これを実行する傾向はあまりありません;)
幸運を祈ります。

于 2012-12-04T19:27:16.483 に答える