• ベストアンサー

アクセス解析でキーワードだけ取得したい

Perlでアクセス解析をしています。 閲覧者がどこから飛んできたのかわかるのですが、下記の様なアドレスで返ってくるので「何ていうキーワード」で引っかかったのか分かりません。 http://search.yahoo.co.jp/bin/search?p=%A5%C6%A5%B9%A5%C8&fr=top&src=top アドレスをブラウザに放り込んでやれば分かるのですが... 上記アドレスから「%A5%C6%A5%B9%A5%C8」を抜き出す方法はあるのでしょうか? ※ search.yahooに特化した話で構いません。 是非、ご教授下さいm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
noname#25358
noname#25358
回答No.2

 この問題を解決するには jcode.pl のほかに Unicode の変換ツールが必要です。  俺のプログラムの場合、下記のロジックでやってます。  $referer の内容をシフトJISに変換するものです。  Unicode 変換ツールは simaguni.pl を使用していますが、これは参考URLのところから取得してください。 require 'jcode.pl'; if($referer =~ /%[eE][0-9a-fA-F]{1}%[0-9a-fA-F]{2}%[0-9a-fA-F]{2}%[eE][0-9a-fA-F]{1}%[0-9a-fA-F]{2}%[0-9a-fA-F]{2}/){   require './simaguni.pl';   if(&simaguni'loadbook8()){     ;# 'euc' 'sjis' 'jis' の何れかを指定     &simaguni'decode8(*referer,'sjis');     &simaguni'unloadbook8();   } }else{   $referer =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;   &jcode'convert(*referer,"sjis"); }

参考URL:
http://www2.famille.ne.jp/~akio1998/simaguni.html
kazon_ume
質問者

お礼

返事遅くなりすみませんm(__)m 「simaguni.pl」を利用させて頂きます。 ありがとうございました。

その他の回答 (1)

  • omni2
  • ベストアンサー率53% (33/62)
回答No.1

↓こういうのでどうでしょうか?? use Jcode; my $url = 'http://search.yahoo.co.jp/bin/search?p=%A5%C6%A5%B9%A5%C8&fr=top&src=top'; $url =~ /p=(.*?)&/i; print $1; print "\n"; my $data = $1; $data =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $data = Jcode->new($data)->sjis; print $data;

kazon_ume
質問者

お礼

返事遅くなりすみませんm(__)m 当サーバでは「use Jcode;」でエラーが出てしまいましたが、勉強して置き換えてみます。 ありがとうございました。

関連するQ&A