2016年2月27日土曜日

宅配便の追跡結果のbookmarklet

アマゾンの買い物などで購入品が発送されると、宅配便の追跡番号が知らされてきます。これをコピー&ペーストして、各社の追跡用のページで検索するのが少々面倒になりました。

最近はGoogleでは「ヤマト [番号]」や「ゆうびん [番号]」と検索すると、「ヤマト運輸の荷物 [番号] を追跡」という検索結果が出てきて、これをクリックすると検索結果が出てきます。が、これでも字を打つ、クリックするなど数アクションあります。

こういうものはbookmarkletが出来ないかということで作ってみました。

追跡サービスのURL

こういうbookmarkletは誰か作っているだろうと思って検索したのですが出てきませんでした。

当初、各社の問い合わせサイトのformタグをまねて、それをjavascriptでsubmitする形式を作ったのですが、上記サイトでURL一つで直接問い合わせられることがわかりました。

この情報少し古いので、サービスが廃止になっていたり、実は正式なものではなくてたまたま見つけられてしまったから今では閉鎖しているということがあるかな?と警戒したのですがそのようでもありませんでした。

これですと各社、URLの最後に伝票番号のパラメーターを付ければいいだけですので、javascriptとしては簡単になります。

bookmarklet

各社のボタンをブラウザーのbookmarkのツールバーへdrag&dropするとbookmarkとして登録されます。あとはbookmarkの編集機能を使って好きなところへ移動してください。

使い方は、ブラウザーを開いて宅配便の番号が載っているページを出し、番号を選択(ハイライト)したら、それぞれのbookmarkletを押すだけです。これで各社の追跡結果のページヘ飛んで結果まで表示されます。 jQueryで簡単!WEBサイトハッキング超入門: ブックマークレット実践サンプル Windows/Mac両対応

クロネコヤマト

クロネコ追跡結果

日本郵便(ゆうパック・エクスパック・レターパック・ポスパケット)

ゆうびん追跡結果

佐川急便

佐川急便追跡結果

通販の宅配便でよく使われるのはこれくらいかなと、上記3つを作ってみました。

国際宅配便

DHLなど海外の宅配業者についてのURLについてはここのサイトに載っていました:

感想

上記の参照サイトにほぼすべての宅配業者が網羅されていると思います。そもそもbookmarkletにするのはよく使う場合ですからだいたいこれで足りると思います。通販やネットオークションをやられているかたでこれ以外の特定の業者を使っている場合は事情が違うだろうと思いますが。

理想を言えば:

  • 番号をいれるだけで、宅配業者も自動判別して検索したい(番号だけで自動判別できるのは不明)
  • Mac OS Xのservicesかcontext menuの形にしてwebブラザー以外でも使えるようにしたい(メールで知らされることが多い)
    Yosemite(10.11)辺りからOSAにAppleScriptだけでなくjavascriptも使えるようになっていた(例えばscript editorで言語が選べる)のでservicesはできるかもしれない。automatorでscript実行モジュールにこのjavascriptが記述できるらしい

おまけ

上記URLがなくなることはないと思いますし、URLが変わったとしてもURLにパラメーターを付けて一発で追跡結果が出る形式はなくならないだろうと思います。

しかし、問い合わせページのformタグを模擬する形(最初に書いたもの)を一応載せてみます。

クロネコヤマト:

var sel = (window.getSelection && window.getSelection());
var form = document.createElement('form');
form.action = 'http://toi.kuronekoyamato.co.jp/cgi-bin/tneko';
form.method = 'post';

var input0=document.createElement('input');
input0.setAttribute('type', 'radio');
input0.setAttribute('name', 'number00');
input0.setAttribute('value', '1');
input0.setAttribute('checked', 'true');
form.appendChild(input0);

var input1=document.createElement('input');
input1.setAttribute('type', 'text');
input1.setAttribute('name', 'number01');
input1.setAttribute('value', see);
form.appendChild(input1);

document.body.appendChild(form);

form.submit();
日本郵便:

var sel = (window.getSelection && window.getSelection());
var form = document.createElement('form');
form.action = 'https://trackings.post.japanpost.jp/services/srv/search/';
form.method = 'get';

var input0=document.createElement('input');
input0.setAttribute('name', 'search');
input0.setAttribute('value', '追跡スタート');
form.appendChild(input0);

var input1=document.createElement('input');
input1.setAttribute('type', 'text');
input1.setAttribute('name', 'requestNo1');
input1.setAttribute('value', see);
form.appendChild(input1);

document.body.appendChild(form);

form.submit();

0 件のコメント:

コメントを投稿