Kindle本の購入履歴をTSVにする
注文履歴を kindle で検索したページで実行する
code:10.js
(() => {
const orders = $$('#ordersContainer .a-fixed-left-grid-inner');
const rows = [];
for (const order of orders) {
const orderId = order.querySelector('.a-row.a-spacing-base .a-link-normal').getAttribute('href').match(/orderId=(.+)/i)1; const orderDate = order.querySelector('.a-row.a-spacing-base').textContent.match(/注文日: (.+) /)1.replace(/年月/g, '/').replace('日', '').trim() + ' 9:00:00'; // 時刻は適当 const asin = book.getAttribute('href').match(/\/gp\/product\/(A-Z0-9+)\//)1; const productUrl = https://www.amazon.co.jp/dp/${asin}/;
const bookName = book.textContent.replace(/\(Kindle 書籍\s+Kindle Books\)/, '').trim();
}
copy(rows.map(r => r.join('\t')).join('\n'));
})();
code:js
(() => {
const orders = $$('.js-order-card').filter(e => e.textContent.includes('Kindle 版'));
const rows = [];
for (const order of orders) {
const orderId = order.querySelector('bdi').textContent;
const orderDate = order.querySelector('.a-color-secondary.value').textContent.replace(/年月/g, '/').replace('日', '').trim() + ' 9:00:00'; // 時刻は適当 const books = order.querySelectorAll('.a-fixed-left-grid-col .a-row .a-link-normalhref*="/gp/product/"'); for (const book of books) {
const asin = book.getAttribute('href').match(/\/gp\/product\/(A-Z0-9+)\//)1; const productUrl = https://www.amazon.co.jp/dp/${asin}/;
const bookName = book.textContent.trim();
}
}
copy(rows.map(r => r.join('\t')).join('\n'));
})();
「注文内容を表示」の遷移先ページで実行する
code:2.js
// TODO
(() => {
const orders = $$('tbody').filter(e => e.textContent.includes('Kindle 版'))3; const rows = [];
for (const order of orders) {
const orderId = order.querySelector('bdi').textContent;
const orderDate = order.querySelector('.a-color-secondary.value').textContent.replace(/年月/g, '/').replace('日', '').trim() + ' 9:00:00'; // 時刻は適当 const books = order.querySelectorAll('.a-fixed-left-grid-col .a-row .a-link-normalhref*="/gp/product/"'); for (const book of books) {
const asin = book.getAttribute('href').match(/\/gp\/product\/(A-Z0-9+)\//)1; const productUrl = https://www.amazon.co.jp/dp/${asin}/;
const bookName = book.textContent.trim();
}
}
copy(rows.map(r => r.join('\t')).join('\n'));
})();
TODO
注文番号を入れる
注文した日時を入れる
適当でよい
商品名を入れる
ASINを入れる
商品URLを入れる
メモ
ひとつの注文は .js-order-card というセレクタで取得できる要素にまとまっている