[京东百度签到]签到的我又来了,这次换成puppeteer了

[京东百度签到]签到的我又来了,这次换成puppeteer了

月光魔力鸭

2019-09-10 10:15 阅读 2263 喜欢 0 puppeteer 京东签到 百度知道签到

关于自动签到,之前也有过,感觉写过好多次了,有可能也重复了,不过这次是通过puppeteer来实现的,相对于之前的phantomjs 或 casperjs 或 request 等最起码会更简单些,也不用安装这么多稀奇古怪的东西。

准备

安装

这里安装直接通过npm来安装即可,由于chrominum 比较大,其实可以调过不用下载的。 请参考这里点我-这里.

干货

原理很简单,就是模拟浏览器,然后点啊点啊..就完了,自己写这个实际上就是个熟悉API的,顺便写着玩。

//记录 各类需要自动签到的网站-- 以后会慢慢丰富(有空且无聊的时候就会增加的。)
//京东自动签到,领京豆
async function jdsign(browser,page){
    let url = `https://www.jd.com/`
    await page.goto(url, {waitUntil: 'networkidle2'});
    await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'})
    console.log(`等待点击登录`)
    await Promise.all([
        page.waitForNavigation({timeout: 0}),
        page.click('a[href="javascript:login();"]')
    ]);
    console.log(`等待点击QQ`)
    await Promise.all([
        page.waitForNavigation({timeout: 0}),
        page.click('#kbCoagent>ul>li:first-child .pdl')
    ])
    console.log(`等待点击帐号授权`)
    const frame = page.frames().find(frame=> frame.name()=='ptlogin_iframe');
    await Promise.all([
        page.waitForNavigation({timeout: 0}),
        frame.click('img[uin="我的QQ号码,记得改"]')
    ]);

    //跳转到岭兜页面
    await page.goto(`https://vip.jd.com/sign/index`);
    await page.goto(`https://home.jd.com/`);
    await page.screenshot({path : './jingdou/1.jpg'});

}


//百度知道签到
async function zhidaosign(browser,page){
    let url =`https://zhidao.baidu.com/`;
    await page.goto(url);
    await page.click('#userbar-login')
    await page.waitFor('#TANGRAM__PSP_10__footerULoginBtn')
    await page.click('#TANGRAM__PSP_10__footerULoginBtn');
    await page.type('#TANGRAM__PSP_10__userName','这个是我的帐号',{delay:100});
    await page.type('#TANGRAM__PSP_10__password','这里是我的密码',{delay : 200})
    await Promise.all([
        page.waitForNavigation(),
        page.click('#TANGRAM__PSP_10__submit')
    ]);    
    await page.click('.go-sign-in');
    await page.waitFor('#sign-in-btn')
    await page.waitFor(3000);
    await page.click('#sign-in-btn')
}

;(async ()=>{

    let puppeteer = require('puppeteer');
    let args = [
        '--no-sandbox',
        '--disable-infobars',
        // '--window-size=800,600',
        '--window-size=1920,1080',
        '--lang=zh-CN',
        '--disable-dev-shm-usage'
    ];
    const browser = await puppeteer.launch({
        headless : false,
        defaultViewport : {
            // width : 800,height:600
            width : 1920,height:1080
        },
        args : args,
        executablePath :    'C:/Users/Administrator/AppData/Local/Google/Chrome SxS/Application/chrome.exe'
        // executablePath : 'C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe'
    });
    const page = await browser.newPage();
    
    //启动京东签到
    await jdsign(browser,page);

    //启动百度知道签到
    await zhidaosign(browser,page);
    await browser.close();

    process.exit(0);
})();

转载请注明出处: https://chrunlee.cn/article/puppeteer-login-record.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
windows 环境下有时候会使用curl工具来测试一些接口或页面,这里简单记录下在windows环境下的安装步骤。
最近有实现作业的展示的需求,在这里仅仅记录下当时自己的思路,大体如何实现的,这里并不体现代码,只有思路。
前段时间有问到一个网页去掉水印的问题,拿到地址一看..dom
flutter 学习旅程之安装篇
2021年度支付宝扫码赚赏金活动又又又开始啦...
最近在找一些资源,绘本啊 故事啊之类的,想到肯定有很多人分享到了网盘,但是去哪里找呢?
这不是之前做了一个磁力小站么.. 发现之前好多记录都是重复的(不要问我怎么发现的),就删除下,感觉不难,但总是写不对.. 这里纯粹记下sql.