2005年1月28日

Auction Watchingでデータが保存されない原因

この記事を読むのに 約4分20秒 かかります

深く掘り下げて調べていないですが、ちょっとだけわかりました。

strictでないけど、こんなスクリプトで実験。

#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Cookies::Microsoft;
use Win32::TieRegistry(Delimiter => "/");
$PROXY_HOST = '';
$PROXY_PORT = '';
$targeturl = 'http://page.auctions.yahoo.co.jp/jp/auction/'.$ARGV[0];
$cookies_dir = $Registry->{"CUser/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders/Cookies"};
$cookie_jar = HTTP::Cookies::Microsoft->new(File => "$cookies_dir\\index.dat",'delayload' => 1,);
$ua = LWP::UserAgent->new;
$ua->cookie_jar($cookie_jar);
if ($PROXY_HOST) {
$ua->proxy(['http', 'ftp'] => "http://$PROXY_HOST:$PROXY_PORT");
}
$res = $ua->request(HTTP::Request->new(GET => $targeturl));
print $res->content;

で、終了していない、開催中のオークションは、

>perl test.cgi c87026505 | nkf -s | more
<html>
<head>
<!--・-->
<TITLE>Yahoo!オークション - ★DIXCELディスクローター★ビート PP1 91/5?用★</TITLE>
</HEAD>
:
略

詳細情報が取れてるけど(実際はログインしてくださいという状態になっているよう)、終わっているオークションは、

>perl test.cgi 73550211 | nkf -s | more
<html>
<head><META HTTP-EQUIV="content-type" CONTENT="text/html; charset=euc-jp">
<link type="text/css" rel="stylesheet" href="http://login.yahoo.co.jp/i/reg2.css">
<script language="javascript" src="http://login.yahoo.co.jp/i/mc/mc.js">
</script>
<title>ログイン - Yahoo!オークション
</title>
</head>
:
略

ということで、せっかくIEのcookieを渡しているのに効かなくなったようで。いや、Yahoo!Auctionには効かないみたいだ。他サイトでは効くところもある。
Auction Watchingでは、詳細情報が取得できなかったときには、そのデータを破棄。それで終了した情報は全部蓄積されないわけだ。
まとめるとこうなるかな。

問題発生以前は、
 開催中オークションはログイン○、情報取得○
 終了オークションは、ログイン○、情報取得○
問題発生以降は、
 開催中オークションはログイン×、情報取得○
 終了オークションは、ログイン×、情報取得×

でもまあ、もともと方法が悪かったのかもしれない。HTTPのやりとりを解析すりゃわかるだろうけど、JavaScriptまで絡んできているよーな気もしたので、とりあえずここまで。

Spidering hacks―ウェブ情報ラクラク取得テクニック101選
Kevin Hemenway Tara Calishain 村上 雅章
オライリー・ジャパン (2004/05)
売り上げランキング: 1,905
通常24時間以内に発送
おすすめ度の平均: 5
5 混沌のWEBからデータを収集した人は必読
5 ただの翻訳ではないすばらしい内容
5 掲載されたHackには、ユニークで興味深いものが多いです。
調べようかと思ったら、オライリーから、こんな良い本出てるのを発見。ちょっと高いなあ。

Posted by BB at 2005/01/28 10:37
Category : CHANGE LOG

 
Related Posts Plugin for WordPress, Blogger...

この記事を読んだ人が読んだ他の記事

去年の今頃に書かれた記事