自动签到之实现掘金模拟签到

UPDATE:2025年10月24日09:02:02

一,环境准备

node 下载安装

node版本:22.14.0

安装好后,进行npm国内源设置

npm国内源设置

打开cmd,复制粘贴下面命令,回车即可

npm config set registry https://registry.npmmirror.com/

验证命令:npm get registry

npm、yarn、pnpm 设置最新国内镜像源(附官方镜像源和最新阿里源),以及 nrm 的使用教程【2025】 | kshao-blog-前端知识记录 (ksh7.com)

二,具体流程

1.首先是代码

javascript 复制代码
const schedule = require('node-schedule');
const puppeteer = require('puppeteer');
 
let browserInstance;
(async () => {
  browserInstance = await puppeteer.launch({
    headless: false,
    defaultViewport: {
      width: 0,
      height: 0
    }
  });
})()
// 每晚9点开始签到
const resetOnlineTimeJob = schedule.scheduleJob('0 9 * * *', async () => {  // 注意时间格式是24小时制
  const b = Math.floor(Math.random() * 60000)
  console.log('在' + b + '毫秒后开始签到');
  setTimeout(aa, b)
});
async function aa() {
  const page = await browserInstance.newPage();
 
  // 设置导航超时时间为60秒(单位为毫秒)
  await page.setDefaultNavigationTimeout(60000);
  try {
    // 导航到指定的页面
    await page.goto('https://juejin.cn/user/center/signin?from=main_page');
 
    // 等待5秒
    await delay(5000);
 
    // 检查并点击签到按钮
    if (await page.$('.signin.btn')) {
      await page.click('.signin.btn');
      console.log('找到.signin.btn');
    }else if (await page.$('.signedin.btn')) {
      await page.click('.signedin.btn');
      console.log('找到.signedin.btn');
    }
 
    // 等待5秒
    await delay(5000);
 
    // 等待并点击 btn-area 中的 btn 按钮
    // await page.waitForSelector('.btn-area .btn');
    // if (await page.$('.btn-area .btn')) {
    //   console.log('找到.btn-area .btn');
    //   await page.click('.btn-area .btn');
    // }
    // 确保该元素可以点击
    await page.waitForSelector('.btn-area .btn', { visible: true });
    await page.waitForFunction(
      selector => {
        const element = document.querySelector(selector);
        return element && !element.disabled && element.offsetWidth > 0 && element.offsetHeight > 0;
      },
      { timeout: 5000 },
      '.btn-area .btn'
    );
    await page.click('.btn-area .btn');
 
    console.log('签到成功');
 
    // 等待3秒
    await delay(3000);
 
    // 等待并点击抽奖按钮
    await page.waitForSelector('#turntable-item-0');
    if (await page.$('#turntable-item-0')) {
      await page.click('#turntable-item-0');
    }
    console.log('抽奖成功');
 
    // 等待3秒然后关闭页面
    await delay(3000);
    // await page.close();
 
  } catch (error) {
    console.log(error);
    // await page.close();
  }
}
function delay(time) {
  return new Promise(function (resolve) {
    setTimeout(resolve, time)
  });
}
 
console.log('<strong><font color="#FF0000">掘金</font></strong>自动签到已启动');

代码转自:

掘金自动签到 - 吾爱破解 - 52pojie.cnhttps://www.52pojie.cn/forum.php?mod=viewthread&tid=2000354&highlight=%BE%F2%BD%F0

2项目初始化

随便打开一个文件夹,自己能找到的,复制上面代码,然后新建txt文件,粘贴进去,随后改名为server.js

(其实命名也是可以自己修改,看你心情)

运行npm init,初始化项目

一路回车即可

或者不需要初始化项目

直接安装依赖

npm i node-schedule

npm i puppeteer

3.运行命令及使用

运行 node server.js

登录到掘金,然后自动执行签到l

三,注意事项

不能关闭窗口,结束

四,python-cookie大法实现签到,部署在centos云服务器自动执行(未完成)

相关推荐
Flynt20 分钟前
Astra 自主跑了 35 小时烧掉 40 亿 token,产出为零:我给 Agent 加了三道闸
python·aigc·agent
mldong23 分钟前
Python 开发者也有自己的轻量工作流引擎了:pip install 一行,5 分钟跑通一条审批流
后端·python·架构
weixin199701080161 小时前
《跨境二手ERP的3种对接模式:自研API / SaaS中间件 / 平台认证服务商,怎么选?》(附Python源码)
开发语言·python·中间件
B2_Proxy1 小时前
Python 爬虫代理中间件开发:统一处理 403、429 与自动重试机制
python
学代码的CJY2 小时前
Python序列类型详解
python
529宝宝起名网2 小时前
用 Python 爬取古籍文献中的名字用例数据库:从二十四史到诗词文集的历史名字采集与分析
python
颜颜yan_9 小时前
ESP-IDF 鸿蒙 PC 适配全记录:打通 Python、构建工具链与 ESP32-P4 固件生成
python·华为·harmonyos
言乐69 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
weixin_440730509 小时前
线程02-并发串行-互斥锁-Semaphore-Event
python·thread
张小凡vip10 小时前
python--爬虫--经验积累的遇到的坑
开发语言·爬虫·python