<< データファイル保護 | main | PHPバージョンのレコボットもどき >>

2007.02.21 Wednesday

レコボットもどき

一年くらい前でしょうか、
「レコボット」
というサービスが一世を風靡しました。
私も使用していたのですが、ある時期を境に使用できなくなり、
現在そのWebSiteにアクセスしてみても・・・

といった状況です。
多分、サーバー負荷が大きすぎたんでしょうね。
まあ、技術的にはたいしたことはないのですが、アイディアものです。
なにせ、Webページのお客さんは、ほとんどが、googleやYahooなどの検索エンジンから来てくれる方がほとんどなわけで、そんな人に、検索キーワードにマッチするAmazonの商品を提示すれば、訴求力はかなりのものがあります。

ということで、簡単にやり方を説明します。

--
技術的には、
どの検索エンジンでどういったキーワードで自分のWebページにたどり着いたかを知るには、Javascriptのreferrerを使うのが簡単です。

ソースは以下のようになります。
<script type="text/javascript"><!--
var referrer = escape(document.referrer);
var pos = referrer.search("[qp]%3D");
if( pos != -1 )
{
pos += 4;
var word = referrer.substring(pos);
var pos_end = word.search("%26");
if( pos_end != -1 )
{
var word_mid = word.substring(0,pos_end);
var search_word = unescape(word_mid);
document.write("<a href=\"parts/aws.php?Keywords=");
document.write(search_word);
document.write("&SearchIndex=Books\">Amazon(書籍)で検索</a>");
document.write("<br>");
document.write("<a href=\"parts/rws.php?field=0&Keywords=");
document.write(search_word);
document.writeln("\">楽天で検索</a>");
}
}
//--></script>


技術的には、これだけのことなので、なんてことはないわけです。
最初の方で、escapeしているのは、生のままだと、特殊文字の検索が出来ないからです。
文字列の抜出が終われば、元の文字列に戻って欲しいので、unescapeしています。
pos+=4とかしているのは、escapeして、文字の長さが2倍になるからです。
このサンプルでは、キーワードが見つかれば、
「search_word」
という変数に検索キーワードが設定され、それを自作PHP関数への引数に指定すれば、「レコボットもどき」の出来上がりです。
ただし、googleとYahooのreferrerしか考慮していないので、それ以外の場合は、多分NGです。

どんなreferrerが送られてくるかを知りたい場合は、
document.write(document.referrer);
をJavascriptブロックの先頭に追加すれば、referrerが表示できます。
なんで、こんなことをしているのかが一発で分かります。
なお、ファイヤーウォール付きのウィルス対策ソフトを使っていると、referrerを送ってくれない場合があるので、そういう場合は、referrerでは、どうにもなりません。

それと、ページがUTF-8以外の場合は、別途エンコード処理が必要になります。
と、何かと制限付きですが、自分用なので、気にしないことにします。

Javascriptは、あまり詳しくはないのですが、多分問題ないと思います。
PHP側で直接画像表示できるようにすれば、ほぼ同じものもできますね。
JavascriptにもMFCやVBのMid系統のメソッドがあると、もう少し、文字列の抜き出しが楽なんですけどね。
(自分が知らないだけかもしれませんが・・・)

自分は面倒なので、Amazon(書籍)と楽天のリンク作成までにしてます。

何れにせよ、レコボットみたいなものは、技術的にはそれほどのことはなくて、
結局は「アイディア」ということです。
ある意味、プログラマにとって一番必要なものかもしれません。
なにせ、いくら使わないような機能をゴテゴテとつけたところで、結局評価するのは、ユーザーなわけですからね。

アフィリエイトIDが変更可能になると、本家レコボットのように、サーバー負荷が大変なことになると思うので、自分専用で使えるようにしておくと、便利に使えると思います。
サーバー負荷に自身のある方は、レコボット2代目を公開すれば、自分のWebページへの流入者も増えるので、よいかもしれません。
レンタルサーバーの方は、絶対に公開しない方がいいです。
間違いなく、削除要請されることになるでしょう。

もし公開される場合で、このページの情報が役に立ったなら、
公開サイトへ、このWebサイトのトップページへのリンクをお願いします。

このパーツは、トップページに導入しています。
検索エンジンからお越しの際は、お試しを。

--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「レコボットもどき」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid11.html」