吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1767|回复: 11
收起左侧

[其他原创] nodjs某宝登录

[复制链接]
小呆呆喵喵喵 发表于 2023-4-26 20:40
本帖最后由 小呆呆喵喵喵 于 2023-4-27 09:35 编辑

记录一下
[JavaScript] 纯文本查看 复制代码
const puppeteer = require('puppeteer-core');
const fs = require('fs');

function log_in(zh, pwd) {

    (async function () {
        const browser = await puppeteer.launch({
            executablePath: 'C:/Program Files/Google/Chrome/Application/chrome.exe',  // 设置浏览器路径
            headless: false,  // 是否启用无头
            devtools: false, //  调试启动
            ignoreDefaultArgs: ["--enable-automation"], //去掉webDriver标识

            args: ['--disable-features=site-per-process'], //  抓取 iframe
            defaultViewport: {width: 0, height: 0}, // 页面大小

        });
        const page = await browser.newPage()
        await page.evaluateOnNewDocument('const newProto = navigator.__proto__;delete newProto.webdriver;navigator.__proto__ = newProto;');
        await page.goto('')
        const text = await page.waitForXPath('//*[@id="fm-login-id"]')
        console.log(text)
        await text.type(zh); // 输入数据

        await (await page.waitForXPath('//*[@id="fm-login-password"]')).type(pwd
        );
        await new Promise(function (r) {
            setTimeout(r, 5000)
        });
        const iframeHandle = await page.$('#baxia-dialog-content')
        if (iframeHandle) {
            console.log('出现滑块');

            const frame = await iframeHandle.contentFrame(); // 切换iframe
            const handles = await frame.waitForSelector('#nc_1_n1z');

            const kd = await (await frame.waitForSelector('#nc_1__scale_text > span')).boundingBox();  // 获取坐标

            const handle = await handles.boundingBox();
            console.log(handle);
            console.log(kd);

            await page.mouse.move(
                handle.x + handle.width / 2,
                handle.y + handle.height / 2
            );
            await page.mouse.down();
            await page.mouse.move(handle.x + handle.width / 2 + kd.width - handle.width,
                handle.y + handle.height / 2, {steps: 50});
            await page.mouse.up();
        } else {
            console.log('没有滑块');
        }
        await new Promise(function (r) {
            setTimeout(r, 3000)
        });

        await (await page.waitForXPath('//*[@id="login-form"]/div[4]/button')).click();

        await new Promise(function (r) {
            setTimeout(r, 3000)
        });
        if (await page.$('#login-form > div.fm-btn > button')) {
            const error = await page.$('#login-error > div')
            if (error) {
                const prop = await error.getProperty('innerText');
                const text_ = await prop.jsonValue(); // 获取组键文字
                console.log(text_)
            } else {
                console.log('登录异常')
            }
        } else {
            console.log('登录成功')
            fs.writeFile('cookies.json', JSON.stringify(await page.cookies()), function () {
                console.log('cookie写入本地完成')
            })
        }

        await page.close();
        await browser.close();

    })();
}

log_in('11111', '22222')

log_in.zip

3.83 KB, 下载次数: 12, 下载积分: 吾爱币 -1 CB

示例代码

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

aa2023 发表于 2023-4-26 23:43
请问这个是这么使用的
d199212 发表于 2023-4-27 08:06
皮卡丘2000 发表于 2023-4-27 08:47
 楼主| 小呆呆喵喵喵 发表于 2023-4-27 09:33
aa2023 发表于 2023-4-26 23:43
请问这个是这么使用的

下载nodejs npm i一下  账号密码换自己的 cookie会保存到本地
 楼主| 小呆呆喵喵喵 发表于 2023-4-27 09:36
19行 填登录链接
aa2023 发表于 2023-5-2 22:04

谢谢大侠
Puhong 发表于 2023-5-4 11:53
有啥用吗这个
910638894 发表于 2023-5-6 06:43

哥 请问下 我想做一个淘宝抢卷的软件 该往哪方面学习呢
eric1218 发表于 2023-5-6 09:05
学习下, 感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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