美文网首页
扇贝自动检查打卡

扇贝自动检查打卡

作者: 扶搏森 | 来源:发表于2019-03-26 16:34 被阅读0次

由于本人一时兴起,在扇贝创建了一个共同学习英语的前端小组,随着人数的增多,为了更好管理,添加自动打卡检测。

const puppeteer = require('puppeteer')

const account = `609457773@qq.com`;
const password = `****`;

const sleep = time => new Promise(resolve => {
  setTimeout(resolve, time)
})

async function loginShanbei(loginUrl, teamUrl) {

  // 返回解析为Promise的浏览器
  const browser = await puppeteer.launch({
    args: ['--no-sandbox'],
    dumpio: false
  })

  // 返回新的页面对象
  const page = await browser.newPage()

  // 页面对象访问对应的url地址
  await page.goto(loginUrl, {
      waitUntil: 'networkidle2'
  })

  // 等待3000ms,等待浏览器的加载
  await sleep(1000)

  await page.type('#input-account', account);
  await page.type('#input-password', password);

  await page.click('#button-login');
  await page.waitForNavigation({
    waitUntil: 'load'
  });//等待页面加载出来,等同于window.onload
  await page.screenshot({path: 'example.png'});

  // 跳到小组页面
  await page.goto(teamUrl, {
      waitUntil: 'networkidle2'
  })
  // 可以在page.evaluate的回调函数中访问浏览器对象,可以进行DOM操作
  let lis = await page.evaluate(async () => {
    const table = document.getElementById('members')
    let members = table.getElementsByClassName('member')
    let li = []
    for (let i = 0; i < members.length; i++) {
      const member = members[i]
      const rate = member.getElementsByClassName('rate')[0]
      const rateSpan = rate.getElementsByTagName('span')[0]
      if (rateSpan.innerHTML && parseInt(rateSpan.innerHTML) < 95) {
        $(member).find('.checkbox').click()
        li.push(i)
      }
    }
    return li
  })
  await page.screenshot({path: 'example2.png', fullPage: true});
  // 如果有满足条件的就踢人
  if (lis.length > 0) {
    await page.click('#dismiss_container .btn');
    // 等待1000ms,等待浏览器的加载
    await sleep(1000)
    await page.click('.confirm');
  }
  // 关闭无头浏览器
  await browser.close()
  return Promise.resolve()
}

loginShanbei('https://web.shanbay.com/web/account/login', 'https://www.shanbay.com/team/manage/#p1')

没有复杂逻辑,主要是用组长的账号登陆,之后跳转到小组管理页面,计算打卡低于95的同学,剔除小组。

pupeteer截图

相关文章

  • 扇贝自动检查打卡

    由于本人一时兴起,在扇贝创建了一个共同学习英语的前端小组,随着人数的增多,为了更好管理,添加自动打卡检测。 没有复...

  • 考研党!没有这几个app怎么行?【持续更新】

    1.扇贝单词 扇贝单词以打卡功能著称,我在扇贝里加入了小组,组长非常严格,每晚11点半都会检查成员打卡情况。如果你...

  • 优先清单

    2020.10.10 周六 1、扇贝单词打卡 2、语文试卷 3、优秀作业展览 4、假期作业检查反馈表 5、趁早时间...

  • 相差10岁,在扇贝同桌768天是怎样一种体验?

    文:扇贝宝藏同学@Jessica&@明天 编辑:扇贝 我是Jessica,在扇贝打卡1040天,我的同桌「明天」,...

  • 最近还是一样努力着

    已经是十一月初了,该要检查我的扇贝打卡了 中间有四天没打卡,嘿嘿~ 最近感觉自己有进步,听句子填空时间减少了一些,...

  • 扇贝自动打卡Python脚本(Python3)

    扇贝登录,不需要处理验证码,这一点使得该脚本简单许多 模拟浏览器,扇贝新闻PC端和移动端的阅读模式不同 登录链接l...

  • 2018.03.01复盘

    一、完成打卡项目 1、扇贝大号打卡 2、扇贝小号500空听力--2个番茄钟(70min) 3、熊猫书院10min ...

  • 2020-07-16

    今日清单: 1、流利说打卡。(已完成) 2、扇贝单词、扇贝听力、扇贝阅读。(已完成) 3、抓力器、握力棒、拉力器、...

  • 扇贝打卡纪念

    刚加入小组的时候,小组是扇贝排行第二,我在700人里排名垫底。今天打完卡发现小组已经冲到第一,个人排名也挺有纪念意...

  • 扇贝打卡350

    蓦然回首,才发现距离上次复盘扇贝的打卡记录,竟已过月余。再复盘这些打卡的日子,除了放上来的这些时间点,还有很多,有...

网友评论

      本文标题:扇贝自动检查打卡

      本文链接:https://www.haomeiwen.com/subject/dfhnvqtx.html