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. springboot12(rabbitmq)

    RabbitAutoConfiguration @Configuration @ConditionalOnClass({ RabbitTemplate.class, Channel.class }) ...

  2. 详解多线程MT和多线程MD的区别

    这段时间司在招实习生,而不管是远程的电话面试或者是实际现场面试中领导都喜欢问你这个问题,但是可惜的是能很好答上来的人很少.后来发现不管是应届的实习生,甚至有些实际参加工作几年的人也未必真的了解这个问题 ...

  3. 507,介绍一下标准的css盒子模型?低版本ie的盒子模型有什么不同的?

    有两种,IE盒子模型,另外是W3C盒子模型: 盒模型都包括:内容(content),填充(padding),边界(margin),边框(border): 区别:IE的content部分吧border和 ...

  4. Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 关于RPC(Remote Procedure Call),如果没有概念,可以参考一下RMI(Remot ...

  5. Windows Server 2016安装.NET Framework 3.5

    1.打开“服务器管理器” 2.点击“添加角色和功能” 3.点击“下一步” 4.点击“下一步” 5.点击“下一步” 6.点击“下一步” 7.勾选“.NET Framework 3.5功能”,点击“下一步 ...

  6. composer update 或者 composer install提示killed解决办法

    出现此原因大多因为缓存不足造成,在linux环境可增加缓存解决. free -mmkdir -p /var/_swap_cd /var/_swap_#Here, 1M * 2000 ~= 2GB of ...

  7. 喵星之旅-狂奔的兔子-myeclipse搭建ssm

    . 可以使用试用期限内的myeclipse,也可以找到有授权的机器进行操作.搭建好的项目框架可以直接移植到免费软件eclipse使用.或者直接购买myeclipse授权. 一.创建一个java web ...

  8. es 的搜索

    kibana语言查询 q指定查询语句 df默认字段,不指定时 sort排序/from和size用于分页 profile可以查看查询是如何倍执行的 查询title的值等于2012 的数据 GET /mo ...

  9. 树莓派安装raspbian并配置开发环境

    1.烧录系统 首先准备好我们要烧录的raspbian系统,可以在树莓派官网中下载https://www.raspberrypi.org/downloads/ 这里我们选择 2018-11-13-ras ...

  10. ubuntu16 安装opencv3.4.2

    下载好opencv3.4.2.zip 执行命令: unzip opencv3.4.2.zip 进入解压后的文件夹: cd opencv3.4.2/ 创建编译路径: mkdir release 进入新创 ...