鱼C论坛

 找回密码
 立即注册
查看: 7324|回复: 12

京东抢购代码求助

[复制链接]
发表于 2021-6-4 00:28:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在倒计时结束的时候,需要刷新抢购页面,准备预约按钮会变成抢购按钮,然后点击按钮进行抢购,如果不用脚本,手动刷新的话,页面加载出来,马上能点击抢购按钮,但是用selenium 的 find 方法 获取抢购按钮就要等很久,想问问有没有大佬指点一下这个是什么原因,如何解决? 其他页面,都是可以瞬间查找到元素,进行操作的,但是就是抢购页面不行,每次执行到红框里面的代码的时候,就要等几十秒,才能过去按钮信息

抢购页面

抢购页面

代码

代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-4 00:42:22 | 显示全部楼层
页面在加载吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 01:25:05 | 显示全部楼层
留个脚印,学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 05:35:47 From FishC Mobile | 显示全部楼层
selenium就是慢,没啥办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 15:16:05 | 显示全部楼层
貌似看到过直接绕过抢购页面,直接付款的插件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 17:27:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-5 23:30:23 | 显示全部楼层

对 ,就是因为页面在加载,所以获取不到信息,但是浏览器上面页面已经显示出来了,是可以正常点击的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-7 11:55:01 | 显示全部楼层
element = WebDriverWait(browser, 20).until(
            EC.presence_of_element_located((By.XPATH, '''定位元素'''))
        )
只要出现目标元素就不再等待全部元素加载完毕,直接可以对目标元素进行操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-10 16:57:39 | 显示全部楼层
本帖最后由 连帅帅 于 2021-6-10 16:59 编辑

给你提供一个JD秒杀抢购的脚本当参考,亲自试验过,用的时候改改时间,设置一下点击频率即可,如果抢到会自动跳转到支付页面。建议Chrome浏览器,F12查看源代码,选择console把脚本代码粘贴,按回车即可!
var nIntervId;
var tjjsId;
var submitDdId;
var tjbbId;
var count = 1;
var tjcs = 1;
var goDate;
function go() {
    console.log("-------代码执行----第【" + count + "】次");
    count++;
    if (Date.now() >= new Date("2021-06-02 15:59:59")) {
        if ($(parent.frames[0].document).find("#btn-reservation").length == 1) {
            var sku = window.location.pathname.replace(/[^0-9]/ig, "");
            var ref = "//cart.jd.com/gate.action?pid=" + sku + "&pcount=1&ptype=1";
            console.log("https:" + ref);
            $(parent.frames[0].document).find("#btn-reservation").attr("href", ref);//
            parent.frames[0].document.getElementById("btn-reservation").click();
            return;
        }
        if ($(parent.frames[0].document).find("#btn-reservation").length == 1) {
            parent.frames[0].document.getElementById("btn-reservation").click();
            return;
        }
        if ($(parent.frames[0].document).find("#InitCartUrl").length == 1) {
            parent.frames[0].document.getElementById("InitCartUrl").click();
            return;
        }
        if ($(parent.frames[0].document).find("#GotoShoppingCart").length == 1) {
            rewrite('https://cart.jd.com/cart_index/');
        }
        if ($(parent.frames[0].document).find(".common-submit-btn").length == 1) {
            var sku = window.location.pathname.replace(/[^0-9]/ig, "");
            $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").trigger("click");
            $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").attr("checked",true);
            parent.frames[0].document.getElementsByClassName("common-submit-btn")[0].click();
        }
        if ($(parent.frames[0].document).find("#order-submit").length == 1) {
            //parent.frames[0].document.getElementById("order-submit").click();
            clearInterval(nIntervId);
            tjbbId = setInterval("tjbb()", 250);
        }
       if ($(parent.frames[0].document).find(".common-submit-btn").length == 1) {
            var sku = window.location.pathname.replace(/[^0-9]/ig, "");
            $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").trigger("click");
            $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").attr("checked",true);
            if($(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']")[0].checked == true){
                clearInterval(nIntervId);
                tjjsId = setInterval("tjjs()", 300);
                parent.frames[0].document.getElementsByClassName("common-submit-btn")[0].click();
            }
        }
        if ($(parent.frames[0].document).find(".index-channel-notice-paylogo").length == 1) {
            clearInterval(nIntervId);
        }
        if ($(parent.frames[0].document).find(".dialog-close-notitle").length == 1) {
            parent.frames[0].document.getElementsByClassName("dialog-close-notitle")[0].click();
        }
    }
}

function tjbb() {
    if ($(parent.frames[0].document).find(".plate-form-word").length == 1) {
        clearInterval(tjbbId);
    }else if ($(parent.frames[0].document).find("#order-submit").length == 1) {
        parent.frames[0].document.getElementById("order-submit").click();
    }
}
function tjjs() {
    console.log("-----去结算提交次数【" + tjcs + "】次-----")
    tjcs++;
    if ($(parent.frames[0].document).find(".dialog-close-notitle").length == 1) {
        console.log("------取消至少选一件------");
        parent.frames[0].document.getElementsByClassName("dialog-close-notitle")[0].click();
    }
    console.log("------尝试提交------");
    var sku = window.location.pathname.replace(/[^0-9]/ig, "");
    if($(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']")[0].checked == true){
        parent.frames[0].document.getElementsByClassName("common-submit-btn")[0].click();
    }else if ($(parent.frames[0].document).find(".common-submit-btn").length == 1) {
        $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").trigger("click");
        $(parent.frames[0].document).find("input:checkbox[value^='"+sku+"']").attr("checked",true);
    }
    if ($(parent.frames[0].document).find(".checkout-submit").length == 1) {
        console.log("------去结算已提交------");
        clearInterval(tjjsId);
        submitDdId = setInterval("submitDd()", 500);
    }

}
function submitDd() {
    if ($(parent.frames[0].document).find(".plate-form-word").length == 1) {
        clearInterval(submitDdId);
    }else if ($(parent.frames[0].document).find("#order-submit").length == 1) {
        parent.frames[0].document.getElementById("order-submit").click();
        clearInterval(submitDdId);
    }
}
function rewrite(current) {
    fr4me = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\'/>';
    fr4me += '</frameset>';
    with (document) { write(fr4me); void (close()) };
}

//注入sql
rewrite(window.location.href);
var d = prompt("请输入抢购开始时间", "2021-06-02 15:59:59");
var pl = prompt("请输入刷新频率【1000为一秒,数值多少合适可以自己测试】", "300");
if (d) {
    try {
        goDate = new Date(d);
        nIntervId = setInterval("go()", pl);
    }
    catch (e) {
        alert("时间格式不正确,请使用yyyy-MM-dd hh:mm:ss格式,精确到秒, 请重试");
    }
}else {
    alert("请重试");

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-14 08:33:21 From FishC Mobile | 显示全部楼层
py学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-15 10:06:21 | 显示全部楼层
连帅帅 发表于 2021-6-10 16:57
给你提供一个JD秒杀抢购的脚本当参考,亲自试验过,用的时候改改时间,设置一下点击频率即可,如果抢到会自 ...

var nIntervId; 报错

是需要安装模块吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-15 11:17:05 | 显示全部楼层
haoliang9324 发表于 2021-6-15 10:06
var nIntervId; 报错

是需要安装模块吗?

不需要的,你在浏览器上登录你的京东,然后找到你要抢购的商品,点进去,按F12,选择Console,把代码贴进去就可以了,记得改时间,比如中午十二点的开始抢购,那你就把时间改为中午11点59分59秒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2022-12-18 23:24:27 | 显示全部楼层
连帅帅 发表于 2021-6-10 16:57
给你提供一个JD秒杀抢购的脚本当参考,亲自试验过,用的时候改改时间,设置一下点击频率即可,如果抢到会自 ...

请问现在还能用吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 07:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表