perl

アマゾンページ解析時の文字変換

アマゾンの文字変換は、めんどくさい。わざとだろう?w
キーワード部分。(これはヤフーショッピングなどと同じ)
$revers_str="http://www.amazon.co.jp/%E5%86%8D%E8%B2%A9-%E3%83%95%E3%82%A3%E3%82%AE%E3%83%A5%E3%82%A2-%E3%83%97%E3%83%A9%E3%83%A2%E3%83%87%E3%83%AB-%E9%80%9A%E8%B2%A9/b/ref=Jhobby_saihan?ie=UTF8&node=3206717051&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=browse&pf_rd_r=0V8X89H3EF6VRAZT0AST&pf_rd_t=101&pf_rd_p=183515329&pf_rd_i=2277721051";
$revers_str=url_decode($revers_str);
$revers_str=strcode_conv("eucjp2sjis",$revers_str);


「再販-フィギュア-プラモデル-通販」に変換される。

逆向き
$revers_url="http://www.amazon.co.jp/%KEY%/b/ref=Jhobby_saihan?ie=UTF8&node=3206717051&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=browse&pf_rd_r=0V8X89H3EF6VRAZT0AST&pf_rd_t=101&pf_rd_p=183515329&pf_rd_i=2277721051";
$revers_str="再販-フィギュア-プラモデル-通販";
$revers_str=strcode_conv("sjis2utf8N",$revers_str);
$revers_str=url_encode($revers_str);
$revers_url=~s/%KEY%/$revers_str/g;
って、書いておくと、strcode_conv で何やってんだよ?!つっかえね~サイトだなぁ!ってことになるので書いておくと
 
eucjp2sjis
Jcode.pl を使ってる。
	Jcode::convert(\$src, 'sjis');
Jcode は、自分で調べてね。
 
sjis2utf8N
こいつは、エンコード、でコードを使ってる。
	use Encode;
	use Encode qw/ from_to /;
	use Encode 'decode';
	use Encode 'encode';
	$src=encode('utf8', decode('shiftjis', $src));
 
url_decode
	local($str)=$_[0];
	$str =~ tr/+/ /;
	$str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ego;
	return($str);
 
url_encode
	local($str)=$_[0];
	$str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;
	$str =~ tr/ /+/;
	return($str);

スポンサーリンク

関連記事一覧