動機
Amazonのセラーセントラルに、クリックポストの追跡番号を1つ1つ入力する仕事に嫌気が差し、精神崩壊する前に自動化を図った。
概要
本内容は以下の2部構成です。
①クリックポストのページで追跡番号リストを半自動ダウンロード
②Amazonのセラーセントラルで追跡番号リストを読み込み、自動入力
当ページでは、①のダウンロードスクリプトを記載します。
②をご覧になる方は、クリックポスト追跡番号一括読み込み(実行編) からどうぞ。
使い方
1.Tampermonkeyをインストール
2.クリックポストのトップページに「番号取得」のボタンが追加されるので、クリック
3.表示しているページの「お問い合わせ番号」と「お届け先氏名」がセットになったテキストデータのダウンロードが開始される
※ファイル名は「clickpost*.txt」。(*)はページ番号。
4.同時に、クリックポストの次ページへ自動で移動する
5.必要なページ数の分だけ、手順2~4を、繰り返す(手順3、4は自動)
(注意)手動でページ移動をした場合、「番号取得」ボタンが消えます。その場合、ページのリロードをお願いします。また、ソートした場合は、動作いたしません。
スクリプト
// ==UserScript==
// @name Click Post Tracking Number
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://clickpost.jp/mypage/index*
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==
function getTrackingNumber(){
var TrackingNumber = [];
var Name = [];
// お問い合わせ番号を取得
$('.col_package_number > a').each(function(){
TrackingNumber.push($(this).text());
});
TrackingNumber.shift();
// 名前を取得
$('.col_receiver > a').each(function(){
Name.push($(this).text());
});
Name.shift();
// 現在のページ数を取得
var FileName = $('.page.current').text();
FileName = FileName.replace(/\n/g, '');
if(TrackingNumber.length != Name.length){
alert('番号と名前の数が不正です。');
}
// 出力データ作成
var out_data = '';
for(var i = 0; i < TrackingNumber.length; i++){
out_data += TrackingNumber[i] + ',' + Name[i] + '\r\n';
}
// データダウンロード
$('<a>', {
href: 'data:text/plain,' + encodeURIComponent(out_data),
download: 'clickpost' + FileName + '.txt'
})[0].click();
// 次ページへ移動
window.location.href = $('a[rel="next"]').attr('href');
}
(function() {
'use strict';
// ボタンを設置
var div_element = $('<div></div>');
div_element.addClass('nav_item');
div_element.html('<input aria-disabled="false" class="button navi_button ui-button ui-widget ui-state-default ui-corner-all button-blue limited" role="button" type="button" value="番号取得">');
div_element.insertBefore($('#nav_box > div:nth-child(5)'));
div_element.on('click', function(){
getTrackingNumber();
});
})();