オークションウォッチング データベース不調
「オークションウォッチング データベース」が不調。
落札データを保存するところ(「オークションウォッチング なう」側の一日の最初の動作のときだ)で、何件かのデータが落ちている模様。
ある程度は動いているし、原因には心当たりがありません。
知らない間にYahoo!のサーバが追加されているのは対応済です。別に対応しなくてもYahoo側で振り直してくれるみたいですけど。
うーむ。
春から触っていないからソース見たくないな。
仕組みについて記憶だけで簡単に書いときます。
Yahoo!Auctionに検索クエリを投げる。検索クエリはファイルで管理。あらかじめ読み込んでおく。
このとき、Yahoo!AuctionってCookieも要るみたいなので、Win32::TieRegistryとかHTTP::Cookies::Microsoftかなんかも使ってたと思う。調べるの面倒だったから、IEのCookieをそのまま使ったはず。あ、クエリは適当に時間を空けないとDoS攻撃かと思われる可能性があるかも。
で、戻ってきた結果を解析。たぶんHTTP STATUS以外のHTML部分は、ベタベタの判定だったなあ(ここが嫌い)。
アイテム判定時に、ファイル管理しているNGワードをあらかじめ読み込んでおいて、コレに引っかかるのは処理を飛ばす。ミニカーやAF50の類はココで落としてます。検索クエリに'-'つけてもいいんですけど。
アイテムは一覧ファイルに無かったら追加して、「次へ」なんてのは、検索クエリのリストに追加。これを全部の検索クエリで繰り返し。
一覧がちゃんとできたところで、各ページの詳細を取り込み。取り込み方は検索ページと同じ。このとき終了しているものはアイテム一覧から終了分のファイルに内容を移動。アイテム判定時に、きちんと詳細が取れないのは破棄。
この一覧ファイルを「オークションウォッチング なう」でHTML形式に体裁を整えて表示しているだけです。
また、終了分はファイル名に日付が入っているので、日単位で終了アイテムファイルができていきます。このファイルを管理用のCGIからデータベースファイルにときどき振り分け、これを体裁を整えて表示すれば、「オークションウォッチング データベース」になるわけです。
コイツらは、なつみかんを設置する前に独自で作りましたが、内容的に似てます。たぶん。
これを応用すると、天気予報とかニュース一覧なんてのが作れます。Google Newsみたいなことも。データをHTMLで表示するだけでなく、RSSで配信したかったら、基本的には基のデータを使って、出力するときに書式をあわせればいいだけ。
ただ、かき集めただけのデータ(コンテンツ)を個人的に利用するだけでなく、自分のサイトから発信するというのは、コンテンツ作成者の著作権とかいろいろありそうなので、オークションウォッチング関係についてはYahoo!JAPANに聞いたことがあるような。なつみかんはタイトルとURL、更新日時だけだから許して欲しい。
話は戻って、オークションのデータが落ちるのは一覧から削除されるということなので、終了分に移動するときか、きちんと詳細が取れなくなっていたかのどちらか。ファイルの移動はPerlメモのファイルロックを踏襲していて、可能性は無い。となると、夜間終了分の処理のときに、Yahoo!からの詳細結果がきちんと取得されていなくて捨てているのかも。
と、ここまで仕組みを書いたから、誰かキレイにゼロから作り直してくれ、ということを言いたかっただけ。