AmazonのASIN取得方法って、いまは…
|AmazonのASIN取得って、内部Webアプリがobidos(Perl::Masonのやつ)だったころはけっこうたいへんだったけど、今はhiddenで入ってるやつ取れば100パーセントOKなのかしらん。
ちょっと信用ならんので、自分でobidos時代から含めて7通りつくってみた。基本JavaScriptで、HTMLをパーズするときは(キライだけど)jQueryベースで記述。
var asin = $('input#ASIN').val();
var asin = location.href.toString.replace(
/^.*/gp/product/([0-9a-zA-Z]+)(:?$|/.*$)/,
'$1'
);
var asin = location.href.toString.replace(
/^.*/dp/([0-9a-zA-Z]+)(:?$|/$|.*$)/,
'$1'
);
var asin = location.href.toString.replace(
/^.*/exec/obidos/ASIN/([0-9a-zA-Z]+)(:?$|/$|.*$)/,
'$1'
);
var asin =
(
!Associates
|| !Associates.SocialShareAttributes
|| !Associates.SocialShareAttributes.asin
)
? undefined
: Associates.SocialShareAttributes.asin
;
var asin =
$('li')
.filter(function(){
if ( $(this).text() && $(this).text().match('ISBN-10:') ) {
return true;
}
})
.slice(0, 1)
.text()
.replace( /ISBN-10:/, '' )
.replace( /[^0-9a-zA-Z]/g, '' )
;
var asin =
$('tr')
.filter(function(){
if ( $(this).text() && $(this).text().match('ASIN') ) {
return true;
}
})
.slice(0, 1)
.text()
.replace( /ASIN/, '' )
.replace( /[^0-9a-zA-Z]/g, '' )
;
あとで使うときやるのでまだ動作検証してない。
というかハイライトがなんかおかしいな。RegExpリテラルが書き間違ってるかも。