一応満足のいくラインです

クラウドワークスで、0620-01【1分半以内に作業終了!】10件の検索結果の報告をお願い致します。5円の報酬になりますという仕事をやらせていただいたのですが、これをもっと簡単にできないか考えました。特定のキーワードで検索したページで上から3番目までのいずれかのサイトにリダイレクトしたいのですが…

// ==UserScript==
// @name        yahoo_rand_redirect
// @namespace   http://d.hatena.ne.jp/jigendaddy/
// @include     http://search.yahoo.co.jp/search?p=*
// @version     1
// @grant       none
// ==/UserScript==
//サイトのurl中に検索するキーワードが含まれる場合は対象としません
var result = document.evaluate('id("WS2m")/div[@class="w"]//span[@class="u"][not(./b)]/text()', document, null, 7, null);
//0から2までの整数をランダムに指定
var rand = Math.floor( Math.random() * 3 );
location.href="http://"+result.snapshotItem(rand).data;

いつも通りこんなスクリプトを考えたのですが、これだと検索エンジンの仕様上URL中に検索するキーワードが含まれる場合に対応できません。最悪全てURL中にキーワードが含まれるページであれば機能しません。そこまでのケースは稀だとは思いますが、想定しているように上から何番目までと指定のあるケースに対応できないことは十分考えられます。もう少しなんとかしたいですね