人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PerlのLWPを使って下記サイトのHTMLを取得・解析しています。
http://www.madamu.tv/main.asp

ブラウザで見ると現在オンライン中の女性一覧が表示されています。
この女性一覧をPerlのLWPなどを使って取得したいのですが、
ソースを見てみるとAjaxでソースが隠ぺいされております。

上記サイトの女性一覧を取得する方法を教えてください。

●質問者: yohsuke
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
●300ポイント ベストアンサー

ごく普通のチャットサイトなので利用規約には引っかかってないですよね。たぶん。
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;
}


参考:Perl LWP::UserAgentでのリファラの偽装: プログラミング研究室


yohsukeさんのコメント
なるほど。 「?/OnlineData.asp?prm=***」からJSONのデータを得ていたことはわかっていたんですが、 実際にHTTPでGETしてみると何も返ってこなくておかしいなと思っていたんです。 リファラが必要だったんですね、盲点でした。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ