http://www.madamu.tv/main.asp
ブラウザで見ると現在オンライン中の女性一覧が表示されています。
この女性一覧をPerlのLWPなどを使って取得したいのですが、
ソースを見てみるとAjaxでソースが隠ぺいされております。
上記サイトの女性一覧を取得する方法を教えてください。
ごく普通のチャットサイトなので利用規約には引っかかってないですよね。たぶん。
ajaxの部分を読んでみました。
ttp://www.madamu.tv/OnlineData.asp?prm=0.15478485287167132
ttp://www.madamu.tv/BeforeOnlineData.asp?prm=0.49901601392775774
この2箇所からJSONでデータを持ってきているようです。後ろの数字はランダムにしてキャッシュ回避。
perlなどでアクセスする際は以下のようにリファラを偽装すればJSONを取得できることを確認しました。
use LWP::UserAgent; use strict; use warnings; my $url = "http://www.madamu.tv/OnlineData.asp?prm=0.1547848528716718"; my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new(GET => "$url"); #リファラの設定 $req->referer("http://www.madamu.tv/main.asp"); my $res = $ua->request($req); if($res->is_success){ print $res->content; }else{ print $res->status_line; }
なるほど。
2012/03/31 13:32:03「~/OnlineData.asp?prm=***」からJSONのデータを得ていたことはわかっていたんですが、
実際にHTTPでGETしてみると何も返ってこなくておかしいなと思っていたんです。
リファラが必要だったんですね、盲点でした。
ありがとうございました。