RoboMaster论坛自动签到,自动浏览刷分

不务正业系列

上完最后一节课,队长跟我们说,RM有个BBS,可以看看,但是下载要金币,这个金币只能做签到等事情才能得到,所以我用python做了一个小程序搞事,自动签到。

FLAG:写完这篇就去复习大物

效果图:

签到功能:

浏览刷分功能:

正题

网上流行的自动签到主要有两种,一种是用类似浏览器的插件,让浏览器后台模拟鼠标点击,它的局限是换了电脑就不好用了,要装一大堆东西,但对网站兼容性好。

另一种是直接发数据包,浏览器与服务器的通讯都是采用数据包的形式,不妨直接发数据包,比较方便,但是对一些安全性高的网站不好用。

我用的是第二种。网上教程极少。

流程

安装Fiddler

这是一个网络分析软件,用于截取数据包,估计wireshark也能干。网上安装教程一大堆。

人工登陆找正常数据包

这个就是正常登陆数据包,username是账号,password是密码的MD5加密结果(小写)

数据包内容

数据包头header:

部分代码

主要思路,删掉了一些敏感信息,请自行添加

数据包生成
模块
import urllib.request
import urllib
import gzip
import http.cookiejar
import re
函数
#定义一个方法用于生成请求头信息,处理cookie
def getOpener(head):
# deal with the Cookies
# <pre name="code" class="python">
cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
header = []
for key, value in head.items():
elem = (key, value)
header.append(elem)
opener.addheaders = header
return opener #定义一个方法来解压返回信息
def ungzip(data):
try: # 尝试解压
print('正在解压.....')
data = str(gzip.decompress(data),'UTF-8')
data = re.sub("[A-Za-z0-9\!\%\[\]\,\。\<\=\"\/\>\#\:\;\'\(\)\_\-\$\@\?\.\+\=\*\%\&\|\{\}\' '\\n]", "", data) print('解压完毕!')
except:
print('未经压缩, 无需解压') return data #封装头信息,伪装成浏览器,注意每个功能的header都不一样 #Cookie1 =
省略
header = {
省略
} header1 = {#签到
省略
}
#退出
header2 = {
省略
}
header3 ={#浏览主页
省略
}
username = 'xxxxxxx'#你的用户名
password = 'xxxxxxxxxx'#你的密码的MD5加密后,(小写字母)
postDict = {
'formhash':'00000129',
'referer':'https://bbs.robomaster.com/portal.php',
'username': username,
'password': password,
'questionid':'0',
'answer':''
}
sign_url= 'https://bbs.robomaster.com/misc.php?mod=supply&op=sign'
login_url = 'https://bbs.robomaster.com/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=Louwq&inajax=1'
logout_url='https://bbs.robomaster.com/member.php?mod=logging&action=logout'
def login(header,login_url,postDict):
print('开始登录')
opener = getOpener(header)
postData = urllib.parse.urlencode(postDict).encode()
op = opener.open(login_url, postData)
print("msg: "+ op.msg)
#print("status:"+op.status + "msg"+ op.msg)
data = op.read()
data = ungzip(data)
print(data)
print('登陆成功')
def sign(header,sign_url):
print('开始签到')
opener = getOpener(header)
op = opener.open(sign_url)
data = op.read()
print("msg: "+ op.msg)
data = ungzip(data)
print(data)
print('签到成功') def logout(header,logout_url):
print('开始退出')
opener = getOpener(header)
op = opener.open(logout_url)
data = op.read()
data = ungzip(data)
print(data)
print("msg: "+ op.msg)
print('退出成功')

对RoboMaster论坛自动签到脚本制作(虽然没什么用)的更多相关文章

  1. Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)

    T00ls 每日签到是可以获取 TuBi 的,由于常常忘记签到,导致损失了很多 TuBi .于是在 T00ls 论坛搜索了一下,发现有不少大佬都写了自己的签到脚本,签到功能实现.定时任务执行以及签到提 ...

  2. python写的自动签到脚本。

    等以后有时间补上. 附上代码: #! /usr/bin/env python # coding:utf-8 #-----------------------------------------学号和密 ...

  3. 基于python3.7的一个闯越自动签到脚本--demo版

    望指正demo的定位,有时候会抽风无法接受我的定位信息 #! /usr/bin/python3 # -*- coding:UTF- -*- # time : // : # file : chuangy ...

  4. 基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本(支持多账号使用)

    每日签到集合 基于[腾讯云函数]/[GitHub Actions]/[Docker]的每日签到脚本 支持多账号使用 特别声明: 本仓库发布的脚本及其中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究 ...

  5. Jmeter介绍以及脚本制作与调试

    目录 Jmeter介绍 Jmeter安装 Jmeter主要测试组件 Jmeter元件作用域与执行顺序 Jmeter运行原理 Jmeter脚本制作 Jmeter脚本调试 Jmeter介绍 Jmeter ...

  6. 利用Python实现App自动签到领取积分

    要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...

  7. selenium之数据驱动框架应用WPS个人中心自动签到

    wps在注册后,有个每日签到的功能,签到后有几率送wps的专属金币[稻米],为了免费获得,又不想每天都是人工去执行签到动作,所以用selenium写了个小脚本,准备用数据驱动框架来完成这个事情,数据驱 ...

  8. 自动签到升级版(JS实现的每日定时任务)

    公司规定每日签到两次:日子太安逸了,有时候中午居然会忘记签到…… 于是,笔者寻思写一个自动签到的脚本:每天指定两个签到时段,每次打开页面,先检测当前是否为签到时段,如果在签到时段,则检查cookie中 ...

  9. nodejs什么值得买自动签到自动评论定时任务

    本项目是基于nodejs开发,实现的功能是,什么值得买自动签到,自动评论功能,自动发邮件,支持多人多账号运行 目的是为了,解放双手,轻松获取什么值得买的经验和积分,得到更高的等级,从而突破很会员等级限 ...

随机推荐

  1. 【做题笔记】P1090 合并果子

    题目大意:给定 \(n\) 个数,每次可以任意选两个数 \(a_i,a_j\) 相加,把相加的结果作为一个新数继续执行此操作,直到只剩一个数为止.现要求使最后得出的这个数最小. 一个显然的贪心策略:每 ...

  2. 有关C/C++中,表达式计算顺序的问题,以及表达式内部变量“副作用”问题(转)

    经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4, ...

  3. 解决安装mysql时出现的三种问题

    MySQL v5.0.96 for windows 安装版         链接:http://pan.baidu.com/s/1slmE2k9 密码:tadp MySQLAdministratort ...

  4. HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER

    这个问题可能是我第一个遇到吧,hadoop启动时WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USE ...

  5. 主席树+二分 p4602

    题意:给出每一种果汁的美味度,价格,升数: m个询问,每个询问给出最高上限的钱g,以及给出最少的w 意思是,最多用g的钱去买最少l的果汁,问能得到的最大美味度: 美味度是取所有果汁中美味度的最小值: ...

  6. Go作用域

    package main import "fmt" //全局变量的定义 //num3 := 1000//不支持简短定义的写法 var num3 = 1000 func main() ...

  7. linux 配置IPSAN存储

    一 SAN存储 1.1 SAN存储介绍 存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通 ...

  8. warmup

    先简单了解下源码中的2个函数: <?php echo mb_strpos("朋友比生命还重要?或许是吧" . '?',"?"); echo "\ ...

  9. tarjan-无向图(求割点)

    一.基本概念 1.割点:无向连通图中,如果删除某点后,图变成不连通,则称改点为割点. 2.桥:无向连通图中,如果去掉某条边后,整张无向图会分成两部分(即整张图不连通),这样的一条边成为桥. 3.点双连 ...

  10. 关于XMlHttpRequest对象

    //创建XMLHttpRequest对象的三种方法 1 var xhr = createXMLHttpRequest(); function createXMLHttpRequest(){ try{ ...