自动化签到的三种方式
现在很多网站都可以通过签到来获取积分,然后拿积分去兑换小礼品。每天手动签到难免有忘记的时候,下面就给大家介绍几种常见的自动化签到方案。
自动化签到的三种方式
- Python/C#/Java等语言拿到页面cookie或者token去请求对应的接口
- pyppeteer/selenium 操作浏览器模拟dom点击
- 浏览器插件方式实现
方案一 使用拿到cookie/token方式签到
这种方式需要提前获取页面cookie/token然后进行签到,电脑端可以使用F12查看,但是手机端页面没有F12就无法通过这种方式获取了,当然手机端页面可以使用Fiddler来抓取cookie/token。
data = {"xxx": "xxxx"}
cookie = 'xxxxxxx'
url = "xxxx"
def post(url, data={}, 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 False
if post(url, data=data, cookie=cookie)
这种方案使用腾讯云函数,再配合定时执行,是真的香。
方案二 操作浏览器模拟dom点击
这种方式需要你在浏览器中登录一次,让浏览器记住你的cookie/token,然后通过自动化操作去模拟DOM点击事件,从而完成签到任务
import asyncio
from 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 == 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等第三方平台
配合消息推送定时把签到结果发送到第三方平台,每天看下消息就可以掌握具体签到情况,常用的消息推送有:
- WxPusher
- pushplus
自动化签到的三种方式相关推荐
- 网络知识入门,用户如何连接互联网,ADSL调制解调器的妙用,PPP上网的三种方式(十二)
互联网与家庭网络的区别 互联网是一个遍布世界的巨大而复杂的系统,但其基本工作方式却出奇地简单.和家庭.公司网络一样,互联网也是通过路由器来转发包的, 而且路由器的基本结构和工作方式也并没有什 ...
- 【推荐收藏 】Python写入MySQL数据库的三种方式,最后一种方式方便又高效
大家好,Python 读取数据自动写入 MySQL 数据库,这个需求在工作中是非常普遍的,主要涉及到 python 操作数据库,读写更新等,数据库可能是 mongodb. es,他们的处理思路都是相似 ...
- 【Spring杂烩】探讨Spring向容器注册Bean的三种方式
探讨Spring向容器注册Bean的三种方式 重点了解@Import实现的三种子方式 前提概要 Spring向容器注册Bean的三种方式 通过@ComponentScan.@Componet 通过@B ...
- python生成excel文件的三种方式
在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel.当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库 ...
- 远程控制virtual box虚拟机系统的三种方式
远程控制virtual box虚拟机系统的三种方式[阅读时间:5分钟] 1.使用现有的远程控制软件 2.使用SSH连接 3.使用远程桌面控制虚拟机系统 对于把虚拟机安装在寝室笔记本的人来说,能够远程控 ...
- 命令行运行Python脚本时传入参数的三种方式
三种常用的方式 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. python script.py 0,1,2 10 python script ...
- sass文件编译的三种方式【舒】
[舒:]sass文件编译的三种方式 方式一: 1.webstorm打开evtGulp项目或者mcake-activity项目 2.中,开启gulp->default/develop,启动watc ...
- java多线程w3c_Java创建多线程的三种方式
前言 这篇文章主要讲述线程的概念.组成.Java创建多线程的三种方式以及线程的类型. 线程概念 线程和进程的区别 **进程:**正在运行的程序,例如:你打开 的qq音乐.exe程序,其由PCB(进程控 ...
- vue 函数 路由跳转_vue中通过路由跳转的三种方式
router-view 实现路由内容的地方,引入组件时写到需要引入的地方 需要注意的是,使用vue-router控制路由则必须router-view作为容器. 通过路由跳转的三种方式 1.router ...
最新文章
- SQLl中的left join、right join、inner join详解
- 2017计算机等级考试试题,2017年计算机二级考试练习题及答案
- 【服务器实战搭建】centos7下使用yum安装mysql
- 微型计算机2020年5月上,2020年小进初微机派位细则出炉,意向民办最多可参加3次派位!...
- 破碎的互联网下,加密技术正在恢复数据主权!
- 来看看深度学习如何在文娱行业“落地”
- SVN branch分支管理
- 二、爬虫 - 新浪爱问共享资源全下载之功能实现
- wordcloud安装,又给我来安装失败,嚓
- 苹果xr配置_定了!苹果发布会9月11日
- java catch空指针异常处理_Java基础学习:java文件空指针异常处理
- 打通对账的最后一公里——对账管理平台
- SQL Server服务远程过程调用失败解决
- IEEE 写作指南(2022)
- EXCEL利用数组公式求多组数据的斜率、截距 或者其他。
- not a genuine ST device,可能是个“假”芯片
- Keras使用VGG16模型预测自己的图片
- 携程 | Scrum Master 新官上任三把火?
- 各类游戏主机模拟器大搜罗
- 复利mysql_复利手游源码PHP理财 复利 分红 拆分经营养成类游戏源码_随便下源码网...