Googleの検索結果から検索エンジンスパムを除外するProxomitronフィルタ

Googleの検索結果から任意のノイズを取り除くProxomitronフィルタ - 隠れん坊将軍の隠れ蓑 と同じコンセプトで、Googleの検索機能を活用したフィルタが出来ないかなと思って作りました。

フィルタ

後述の外部JavaScriptファイルと組み合わせて使います。

[Patterns]
Name = "Google: Anti SearchEngineSpam [2009/01/26] test2"
Active = TRUE
URL = "$TYPE(htm)www.google.co.jp/search(^(^\?))(^*[?&]hq=)"
Limit = 8
Match = "(^(^))$STOP()"
Replace = "\k"

外部JavaScriptファイル

下記コードを \html\js\Anti_SearchEngineSpam.js に文字コードUTF-8」で保存してください。

/*
	Google: 検索エンジンスパム対策


	■使い方

	Googleの検索演算子を利用して、特定のURLを除外した検索URLにリダイレクトさせます。
	検索エンジンスパム対策を目的として作りました。
	(※検索演算子に関しては後述の「参考資料」を参考にして下さい。)
	
	例えば、検索条件に "-site:somehost.com" を追加すると somehost.com を含まない検索結果になります。
	そうするためには、SPAMINFOに下記パターンを指定します。

		{
			operator: '-site:',
			value:    'somehost.com'
		},

	通常、SPAMINFOでは operator(検索演算子) と value(値) はセットで指定しますが、	"operator" は空にすることも出来ます。
	例えば、

		{
			operator:'',
			value:'-ブログ'
		},

	を指定すると「ブログ」のワードを含まない検索結果になります。


	■参考資料

	Google 検索の URL パラメータリスト - WebOS Goodies
	http://webos-goodies.jp/archives/50785287.html
	Advanced Google Search Operators
	http://www.google.co.jp/help/operators.html
	Google検索コマンドと演算子一覧/Web検索! メタサーチ/
	http://search.web-sun.com/g_help.html

 */


(function(){

	// 新しく挿入する検索パターンの初期化 (operator=検索演算子, value=値)
	var SPAMINFO = [
		// ---- OKWave派生 (本家以外)
		{
			operator:'-site:',
			value:'www.okweb.ne.jp'
		},
		{
			operator:'-site:',
			value:'mobile.okweb3.jp'
		},
		{
			operator:'-site:',
			value:'210.132.71.10'
		},
		{
			operator:'-site:',
			value:'faq.stage007.com'
		},
		{
			operator:'-site:',
			value:'hiroba.chintai.net'
		},
		{
			operator:'-site:',
			value:'kaiketu.bon.co.jp'
		},
		{
			operator:'-site:',
			value:'kaiketsu.athome.jp'
		},
		{
			operator:'-site:',
			value:'kikitai.teacup.com'
		},
		{
			operator:'-site:',
			value:'oshiete.aucfan.com'
		},
		{
			operator:'-site:',
			value:'oshiete.coneco.net'
		},
		{
			operator:'-site:',
			value:'oshiete.dakko.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.filesend.to'
		},
		{
			operator:'-site:',
			value:'oshiete.homes.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.hokende.com'
		},
		{
			operator:'-site:',
			value:'oshiete.neo-navi.com'
		},
		{
			operator:'-site:',
			value:'oshiete.nikkeibp.co.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.quick.co.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.sponichi.co.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.searchina.ne.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.goo.ne.jp'
		},
		{
			operator:'-site:',
			value:'oshiete1.goo.ne.jp'
		},
		{
			operator:'-site:',
			value:'oshiete.watch.impress.co.jp'
		},
		{
			operator:'-site:',
			value:'oshiete1.watch.impress.co.jp'
		},
		{
			operator:'-site:',
			value:'otasuke.goo-net.com'
		},
		{
			operator:'-site:',
			value:'qa.asahi.com'
		},
		{
			operator:'-site:',
			value:'qa.butterfly.co.jp'
		},
		{
			operator:'-site:',
			value:'qa.mapion.co.jp'
		},
		{
			operator:'-site:',
			value:'qa.moura.jp'
		},
		{
			operator:'-site:',
			value:'qa.padonavi.net'
		},
		{
			operator:'-site:',
			value:'qanda.rakuten.ne.jp'
		},
		{
			operator:'-site:',
			value:'qanda.usfl.com'
		},
		{
			operator:'-site:',
			value:'questionbox.jp.msn.com'
		},
		{
			operator:'-site:',
			value:'soudan1.biglobe.ne.jp'
		},
		{
			operator:'-site:',
			value:'www.naruhodo-au.kddi.com'
		},
		{
			operator:'-site:',
			value:'ziddy.japan.zdnet.com'
		},
	]

	// 検索パターンの追加挿入
	var spattern = '';
	for(var i=0, L=SPAMINFO.length; i < L; i++){
		spattern += '+' + encodeURI(SPAMINFO[i]['operator'] + SPAMINFO[i]['value']);
	}

	// リダイレクト処理
	location.href = location.href + '&hq=' + spattern;
})();

更新履歴

2009/01/25

  • 初版

2009/01/26 1:15

  • 通信切断(\k)による高速化

備考

  • 除外URLリストは 隠れん坊将軍の隠れ蓑 さんのリストをお借りしました。m(_ _)m
  • Googleは32件までのクエリしか受け付けないため、現実的には25件ぐらいの除外条件しか指定できません。そのため、実用性は低いです。
  • 上のサンプルでは指定条件が32件を超えているため、後方の除外条件が適用できていません。
  • このフィルタは記録として残しています。

やはり、検索結果からURL指定で消していく方法が一番なのかな?