Greasemonkeyを使って海外Amazonサイトに日本円換算の価格を表示してみた
円高(など)の影響で海外のamazonで買ったほうが安いとかいうことになっている*1そうなので海外サイトでも日本円に換算した価格が表示されれば便利だろうと思って作ってみました。
ページから価格の部分を抜き出してGoogleに投げ、金額換算をしてもらっています。
とりあえず、USとUKのみの対応ですが他の国のamazonでも動くと思います*2(※2009・02・04追記:USとUK以外では動かなくなりました)。
※2009・01・31追記:
userscript.orgからインストールできるようになりました。
http://userscripts.org/scripts/show/41488
※2009・02・02追記:Firefox3でしかテストしていないので他のブラウザでは動かない可能性があります
ソース
userscript.orgからインストールできます
http://userscripts.org/scripts/show/41488
// ==UserScript== // @name amazon_change2yen // @namespace koki-h // @description googleの検索を使ってamazon.comとamazon.co.ukの価格を日本円に換算する // @include http://www.amazon.com/* // @include http://www.amazon.co.uk/* // ==/UserScript== (function () { function parseHTML(text) { //This function is copied from http://d.hatena.ne.jp/odz/20060901/1157165797 //Thanks to id:odz! var createHTMLDocument = function() { var xsl = (new DOMParser()).parseFromString( ['<?xml version="1.0"?>', '<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">', '<output method="html"/>', '</stylesheet>'].join("\n"), "text/xml"); var xsltp = new XSLTProcessor(); xsltp.importStylesheet(xsl); var doc = xsltp.transformToDocument( document.implementation.createDocument("", "", null)); return doc; }; var doc = createHTMLDocument(); var range = doc.createRange(); doc.appendChild(doc.createElement("html")); range.selectNodeContents(doc.documentElement); doc.documentElement.appendChild( range.createContextualFragment(text)); return doc; } var orgPrice = document.getElementsByClassName('priceLarge')[0].innerHTML; var gSearchUrl = "http://www.google.co.jp/search?hl=ja&q=" + orgPrice + "%E3%82%92%E5%86%86%E3%81%AB"; //"を円に"を追加する var gSearchRequest = GM_xmlhttpRequest({ method: "GET", url: gSearchUrl, onload: function(res){ var parser = new DOMParser(); var gSearchResultPage = parseHTML(res.responseText); var gSearchResult = gSearchResultPage.getElementsByTagName('b')[8].innerHTML var yenPrice = gSearchResult.split(' = ')[1] document.getElementsByClassName('priceLarge')[0].innerHTML += " (" + yenPrice + ")"; } }); })()
参考にしたページ
- Greasemonkey開発全般について
- 502 Bad Gateway
- Ajaxで取得したページをパースする方法について(ソースをまるごといただきました)
- JavaScript で HTML を Parse する - odz buffer
*1:Amazon.co.ukでDVDを買うと安いという話 - 西尾泰和のはてなダイアリー
*2:他にどこの国があるか知らんけど