自动化签到的三种方式

现在很多网站都可以通过签到来获取积分,然后拿积分去兑换小礼品 。每天手动签到难免有忘记的时候,下面就给大家介绍几种常见的自动化签到方案 。

自动化签到的三种方式

  1. Python/C#/Java等语言拿到页面cookie或者token去请求对应的接口
  2. pyppeteer/selenium 操作浏览器模拟dom点击
  3. 浏览器插件方式实现

方案一 使用拿到cookie/token方式签到

这种方式需要提前获取页面cookie/token然后进行签到,电脑端可以使用F12查看,但是手机端页面没有F12就无法通过这种方式获取了,当然手机端页面可以使用Fiddler来抓取cookie/token 。
data = https://www.itzhengshu.com/wps/{"xxx": "xxxx"}cookie = 'xxxxxxx'url = "xxxx"def post(url, data=https://www.itzhengshu.com/wps/{}, cookie=""):cookie_json = {}if cookie != "":for c in cookie.split(";"):str = c.split("=")cookie_json[str[0]] = str[1]r = requests.post(url, cookies=cookie_json, json=data, headers=headers)if r.status_code == 200:return json.loads(r.content)return Falseif post(url, data=https://www.itzhengshu.com/wps/data, cookie=cookie)
这种方案使用腾讯云函数 , 再配合定时执行,是真的香 。

方案二 操作浏览器模拟dom点击

这种方式需要你在浏览器中登录一次,让浏览器记住你的cookie/token,然后通过自动化操作去模拟DOM点击事件,从而完成签到任务
import asynciofrom pyppeteer import launchasync def main():browser = await launch(headless=False,ignoreDefaultArgs=["--enable-automation"],args=["--no-sandbox", "--window-size=1366,848"],)# 关闭无头浏览器page = await browser.newPage()await page.setViewport({"width": 1366, "height": 768})await page.goto("xxxx")# 跳转到指定网页# 这里就可以获取dom,执行dom的点击事件await page.evaluate('window.scrollBy(0, document.body.scrollHeight)')await page.waitFor(50 * 1000)await browser.close()# 关闭asyncio.get_event_loop().run_until_complete(main())# 调用

方案三 浏览器插件方式实现

这种方式也必须在浏览器中登录 。通过浏览器插件在页面中注入js脚本,在页面加载完成后执行模拟dom操作 , 或者直接发送ajax请求 。页面中发送的ajax也可以配置带上cookie 。
console.log('页面注入成功');window.onload = function () {setTimeout(() => {let url = 'xxxxx';//判断是不是当前也页面if (window.location.href =https://www.itzhengshu.com/wps/= url) {setTimeout(() => {let b = document.querySelector('.signin.btn')if (b) {b.click();}//或者//httpPost(url, {'xx':'xxx'});}, 10000);}}}//post请求function httpPost(url, data) {const xhr = new XMLHttpRequest();xhr.open('post', url)xhr.withCredentials = true; //很重要,没有这里请求就不会带上cookiexhr.setRequestHeader("Content-type", "application/json");xhr.send(JSON.stringify(data));xhr.onreadystatechange = function () {if (xhr.status == 200 && xhr.readyState == 4) {console.log(JSON.parse(xhr.responseText));}}}

使用消息推送把签到结果发送到微信/QQ等第三方平台

【自动化签到的三种方式】配合消息推送定时把签到结果发送到第三方平台,每天看下消息就可以掌握具体签到情况,常用的消息推送有:
  1. WxPusher
  2. pushplus

相关经验推荐