Amazing!在CSDN官方插件里面,嵌入“自动签到”插件,自此再也不用手动签到
每天都登录 CSDN,但是总是忘记签到,虽然签到也抽不到奖,但是先签了再说。
本款插件实现了,只要当天打开 CSDN 任意一篇文章,后台默认自动签到。

梳理插件逻辑
手动签到逻辑:
打开 https://i.csdn.net/#/user-center/draw?type=reward,点击签到按钮。
自动签到逻辑:
- 找到签到接口,查看请求接口与请求参数;
- 通过 jQuery 模拟请求;
逻辑梳理清楚之后,就可以准备相关开发素材了:
抓取到的接口如下:
https://me.csdn.net/api/LuckyDraw_v2/signIn
抓取到参数格式如下:
payload,具体数据如下
{"product": "pc","username": "你的ID","ip": "","user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0","platform": "pc-my","uuid": "你的UUID"
}
数据请求格式如下:
POST
接口响应数据如下:
因为签到之后,我们不需要后续操作,所以响应内容可忽略。

隐藏逻辑
发送请求时,需要携带 cookie 信息,该 cookie 信息主要用于验证当前签到人是谁。
该类接口不好测试,因为每天只能签到 1 次,用完就要换号。
编码时间
逻辑整理完毕,可直接进入插件编写环节,本次依旧在CSDN 开发者工具中进行扩展,创建插件步骤直接参考官方说明即可。
插件匹配规则如下
*://*.csdn.net/*
插件增加外部资源如下
// 引入 jquery
https://cdn.bootcss.com/jquery/1.12.4/jquery.js
// 引入 jquery cookie,用于操作 cookie
https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.js

核心 JS 编写如下,相关说明,在注释与代码下方
(function () {// Your code here...// 获取cookie中的 uuid,用户标致uuid = $.cookie("uuid_tt_dd");// 获取cookie中的usernamename = $.cookie("UserName");// 用于每天请求一次签到地址is_signin = $.cookie("ca_is_signin");//console.log(is_signin);var expire = new Date();//console.log(expire.getTime());// 设置 cookie 失效时间为每日 23:55:00date_str = expire.toLocaleDateString() + " 23:55:00";var newdate = new Date(date_str);if (is_signin == null) {$.cookie("ca_is_signin", "yijingqiandao", {expires: newdate,path: "/",domain: "csdn.net",});// 请求注册$.ajax({type: "POST",url: "https://me.csdn.net/api/LuckyDraw_v2/signIn",contentType: "application/json;charset=UTF-8",xhrFields: {withCredentials: true,}, //该参数非常重要,缺失将无法成功签到data: JSON.stringify({product: "pc",username: name,ip: "",user_agent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",platform: "pc-my",uuid: uuid,}),success: function (cb) {console.log("签到成功");},});} else {console.log("今天已经签到过了");}
})();
在签到请求中,有两个参数是签到者本人标志数据,其一是 username,其二是 uuid,二者可以通过 cookie 进行获取。
在后面的逻辑中,通过一个有失效时间的 cookie 去判断用户今日是否签到,该 cookie 为 ca_is_signin,如果该值为空,即未签到,否则为已签到。
该特定时间设置为每日的 23:55:00,即该时间点 cookie 失效。
$.ajax 请求为普通的请求,只是在请求时增加一个参数,即 xhrFields,并将该值中的 withCredentials 设置为 true,用于表示跨域请求带上 cookie,即抓取当前域下的所有 cookie ,一起发送到服务器端。
至此,该款插件研发完成,你具备了一款能自动签到的插件,只要当天你打开过 CSDN,默认就会签到。
写在后面
插件下载地址:https://plugin.csdn.net/plugin?pluginId=CSDNPlugin-54538234-1626751424012-43890936
今天是持续写作的第 187 / 200 天。
可以关注,点赞、评论、收藏,拉进你我缘分。
更多精彩
- Python 爬虫 100 例教程导航帖(抓紧订阅啦)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
