Amazon(JP)の書籍情報ページを重要事項のみの表示に書き換えるbookmarklet、spa.js(Simplify Page of Amazon)。
書籍情報をEvernoteやScrapboxに保存する目的で作りました。
Amazonの書籍情報ページを表示した状態で、bookmarkletを実行すると、シンプルな重要な書籍情報のみの表示になります。
後は、EvernoteであればブラウザアドインのEvernote Clipperを立ち上げ、保存します(「記事」「簡易版の記事」のどちらを保存するかはお好みで)。
Scrapboxであれば、表示すべてを選択してコピーして、Scrapboxの新しいページにペースト。画像はコピーされないので、ブラウザで画像のURLをコピーしてScrapboxにリンク記法([]を使用)でペースト。
元の表示に戻したい場合はリロードして下さい。
抜粋される情報は、以下。
- 書名
- 著者
- 形態(単行本、ページ数など)
- 出版社
- 言語
- ISBN(Kindle版ならASIN)
- 発売日
- AmazonのURL
- additionalStringで指定する、任意の文字列
Scrapbox向けに自動的に送り込むこともできるようにしようかと思ったが、Evernote Clipperが使えれば自分としてはそれで十分なので、そこまでやらないことにしました。
参考までに、Amazonの書籍ページは、Amazonの検索ボックスからISBNを打ち込めば表示できます。
以下のコードをコピーしてブックマークに登録して下さい。
なお、2行目でadditionalStringに自分用のタグを設定してあるので、空文字列にするなり、書き換えるなりしてください。
javascript:(function(){
var additionalString = "# 購入<br># 図書館<br># 読みたい<br># 読んだ<br>";
var titleElm = document.getElementById('productTitle');
if (!titleElm) var titleElm = document.getElementById("ebooksProductTitle");
var title = titleElm.innerText;
var imageElm = document.getElementById("imageBlockContainer");
if (!imageElm) var imageElm = document.getElementById("ebooksImageBlockContainer");
var imgUrl = imageElm.getElementsByTagName("img")[0].getAttribute("src");
var authors = document.getElementsByClassName("author");
var author = "";
for (var i = 0; i < authors.length ;i++) {
let si = authors[i].getElementsByTagName("script");
while (si.length > 0) {
si[0].parentNode.removeChild(si[0]);
}
si = authors[i].getElementsByClassName("a-popover-preload");
while (si.length > 0) {
si[0].parentNode.removeChild(si[0]);
}
author += authors[i].innerText;
}
var detail_bullets = document.getElementById("detail_bullets_id");
var infos = detail_bullets.getElementsByTagName("li");
var info = [];
for (i=0; i < infos.length ;i++) {
let j = infos[i].innerText;
if (/ページ$/.test(j)) {
info.push(infos[i].innerText.replace(/<br>/, "\n"));
} else if (/^(出版社|言語|ISBN|ASIN|発売日)/.test(j)) {
info.push(infos[i].innerText.replace(/<br>/, "\n"));
}
}
var amazonURL = location.href;
amazonURL = amazonURL.replace(/www.amazon.co.jp\/.*\/dp\//, "www.amazon.co.jp/dp/");
amazonURL = amazonURL.replace(/\/dp\/([^\/]+)\/.*$/, "/dp/$1/");
var body = "";
body += "<h1>" + title + "</h1>";
body += "<p></p>";
body += "<ul>";
body += "<li>書名: " + title + "</li>";
body += "<li>著者: " + author + "</li>";
if (infos.length > 0) {
body += "<li>";
body += info.join("</li><li>");
body += "</li>";
}
body += "<li>amazon URL: <a href = \"" + amazonURL + "\">" + amazonURL + "</a></li>";
body += "</ul>";
body += "<img src=\"" + imgUrl + "\"><br>";
body += additionalString;
document.body.innerHTML = body;
})();
https://github.com/norcedge/spajs
Change Log
Ver.1.2 – 2019-05-21
ファイル名およびリポジトリ名、README.mdの変更。
Ver.1.1 – 2019-05-16
著者名の切り出しを改善。
Ver.1.0 2019-05-14
Initial version.