コトバノウタカタ

よしなしごとをつらつらとつづるばしょ。

Amazon終了

いまいちだけど

javascript: var d = document;
dv = d.getElementsByClassName('Z9dd1d');
var cnt = dv.length;
var cnttg = document.createElement('div');
cnttg.textContent = cnt;
d.getElementsByClassName('NsL8tJ')[0].appendChild(cnttg);
for (i = 0;
    i < dv.length;
    i++) {

    aa = dv[i].getElementsByClassName('_3HZFFn')[0];
    nm = dv[i].getAttribute('data-card-title');
    href = aa.getAttribute('href');
    reg = /detail\/([^\/]+)/;
    match = reg.exec(href);
    asin = match[1];

    ln = 'https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=カタカナ&url=node%3D4217521051&field-keywords=' + nm;
    var req = new XMLHttpRequest();
    rm = dv[i].getElementsByClassName("km3sbT")[0];
    req.rm = dv[i];
    req.ln = ln;
    req.nnm = nm;

    req.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            x = this.responseXML;
            hit = false;

            cx = x.getElementsByClassName("a-spacing-top-medium");
            if (cx[0].textContent.indexOf("すべてのカテゴリーから検索結果を表示しています") >= 0 ||
                cx[0].textContent.indexOf("30日以内にプライム会員特典ではなくなる作品内に") >= 0) {
                hit = false;
            }
            else {
                ls = x.getElementsByClassName("s-product-image-container");
                if (ls.length > 0) {
                    hit = true;
                    chs = ls[0].children;
                    en = "";
                    for (chi = 0;
                        chi < chs.length;
                        chi++) {
                        ch = chs[chi];
                        h5 = ch.getElementsByClassName("s-image");
                        if (h5.length > 0) {
                            tnm = h5[0].getAttribute("alt");
                            console.log(tnm + "/" + this.nnm);
                            if (tnm == this.nnm) {
                                en = "終了確認";
                            }
                        }
                    }
                    if (en != "") {
                        a = d.createElement("a");
                        a.href = this.ln;
                        a.textContent = en;
                        a.setAttribute("target", "_blank");
                        dd = d.createElement("div");
                        a.setAttribute("style", "float:right");
                        dd.appendChild(a);
                        this.rm.appendChild(dd);
                        hit = true;
                    }
                    else {
                        this.rm.style.display = "none";
                    }
                }
            }
            if (hit == false) {
                this.rm.style.display = "none";
            }
            cnt--;
            cnttg.textContent = cnt;
        }
    }
        ;
    req.open("GET", ln, true);
    req.responseType = "document";
    req.send(null);
}
;


別ページに表示。スクロールしながらじゃないとできない。

javascript: var d = document;
dv = d.getElementsByClassName('Z9dd1d');
var cnt = dv.length;
var cnttg = document.createElement('div');
cnttg.textContent = cnt;
d.getElementsByClassName('NsL8tJ')[0].appendChild(cnttg);
np = window.open();
bu = window.location.protocol + '//' + window.location.host;

for (i = 0;
    i < dv.length;
    i++) {

    aa = dv[i].getElementsByClassName('_3HZFFn')[0];
    nm = dv[i].getAttribute('data-card-title');
    href = aa.getAttribute('href');
    reg = /detail\/([^\/]+)/;
    match = reg.exec(href);
    asin = match[1];

    ln = 'https://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=カタカナ&url=node%3D4217521051&field-keywords=' + nm;
    var req = new XMLHttpRequest();
    rm = dv[i].getElementsByClassName("km3sbT")[0];
    req.rm = dv[i];
    req.ln = ln;
    req.nnm = nm;
    req.npp = np;
    req.hr = bu + href;

    req.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            x = this.responseXML;
            hit = false;

            cx = x.getElementsByClassName("a-spacing-top-medium");
            if (cx[0].textContent.indexOf("すべてのカテゴリーから検索結果を表示しています") >= 0 ||
                cx[0].textContent.indexOf("30日以内にプライム会員特典ではなくなる作品内に") >= 0) {
                hit = false;
            }
            else {
                ls = x.getElementsByClassName("s-product-image-container");
                if (ls.length > 0) {
                    hit = true;
                    chs = ls[0].children;
                    en = "";
                    for (chi = 0;
                        chi < chs.length;
                        chi++) {
                        ch = chs[chi];
                        h5 = ch.getElementsByClassName("s-image");
                        if (h5.length > 0) {
                            tnm = h5[0].getAttribute("alt");
                            console.log(tnm + "/" + this.nnm);
                            if (tnm == this.nnm) {
                                en = "終了確認";
                            }
                        }
                    }
                    if (en != "") {
                        dd = d.createElement("div");

                        a2 = d.createElement("a");
                        a2.href = this.hr;
                        a2.textContent = this.nnm;
                        a2.setAttribute("target", "_blank");
                        dd.appendChild(a2);

                        a = d.createElement("a");
                        a.href = this.ln;
                        a.textContent = en;
                        a.setAttribute("target", "_blank");
                        dd.appendChild(a);

                        this.npp.document.body.appendChild(dd);
                        hit = true;
                    }
                    else {
                        this.rm.style.display = "none";
                    }
                }
            }
            if (hit == false) {
                this.rm.style.display = "none";
            }
            cnt--;
            cnttg.textContent = cnt;
        }
    }
        ;
    req.open("GET", ln, true);
    req.responseType = "document";
    req.send(null);
}
;