对RoboMaster论坛自动签到脚本制作(虽然无卵用)

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('退出成功')

原文地址:https://www.cnblogs.com/qhlai/p/12311198.html

时间: 2024-08-29 10:03:16

对RoboMaster论坛自动签到脚本制作(虽然无卵用)的相关文章

Python实现论坛自动签到

[文件] DakeleSign.py ~ 4KB #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'poppy' ''' dakele bbs sigin ''' import sys import urllib2 import urllib import requests import cookielib import json from pyquery import PyQuery as pq import logging

Linux中自动安装脚本

如何让你的主机自动的完成安装,自动的回答系统提出的问题,编写自动安装脚本即可实现,如下将详细解释自动脚本安装方法. systemd-config-kickstart  ##自动应答脚本制作工具 安装成功,在安装过程中systemd-config-kickstart 将做出脚本应答 进行选择语言选择 (1)Basic Configuration 安装过程的必须一致时区选择(可不选,在脚本中都有写到,这里做一个解释) Root passwd 填写Root密码,并确认,两次输入密码 Advanced

Linux下使用crontab命令以及Python脚本实现自动签到

关于这一部分, 我首先介绍下如何实现使用Python脚本实现签到功能其实,linux下有个命令叫做curl,完全可以完成模拟签到的功能,但是为了练习Python,我就用Python来写了.有这个想法完全是因为实验室的学长开发了一款App,上边收个起床签到,还有排名,为了能那个首签... 言归正传 首先,因为是手机上的App, 所以,我们需要抓包看下它具体的URL以及发送的内容是什么,关于这部分内容我就不在赘述了,我实现的功能主要有模拟发布状态和模拟签到两种功能,两个的URL也是不同的.为了不让学

基于AccessibilityService制作的钉钉自动签到程序

标签: 移动开发安卓自动化操作 2015-12-03 09:56 1736人阅读 评论(10) 收藏 举报 分类: Android(3) 版权声明:本文为博主原创文章,未经博主允许不得转载. 前两天公司开始宣布要使用阿里钉钉来签到啦!!!~~这就意味着,我必须老老实实每天按时签到上班下班了,这真是一个悲伤的消息,可是!!!!那么机智(lan)的我,怎么可能就这么屈服!!!阿里钉钉签到,说到底不就是手机软件签到吗?我就是干移动开发的,做一个小应用每天自动签到不就行了:) 说干就干,首先分析一下,阿

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

公司规定每日签到两次:日子太安逸了,有时候中午居然会忘记签到…… 于是,笔者寻思写一个自动签到的脚本:每天指定两个签到时段,每次打开页面,先检测当前是否为签到时段,如果在签到时段,则检查cookie中记录的值,确认该时段是否已经签到过了,巴拉巴拉…… 具体细节见流程图: 其中第一步调用的getCheckTime用来检测当前是否为签到时间,并返回当前时间距下一个时段的毫秒数,具体请见下面的流程图: 整个页面的代码如下,其中用到了笔者<JavaScript类库/组件/框架封装的总体结构>一文中提到

LNMP一键安装包 PHP自动升级脚本

LNMP一键安装包 PHP自动升级脚本 2011年03月15日 上午 | 作者:VPS侦探 前一段时间完成了lnmp一键安装包的PHP自动升级脚本,今天发布出来,如果想升级PHP版本的lnmp用户可以试用一下.支持目前lnmp的所有版本. 只能有低版本升级到高版本不能降级.可以升级到现有PHP 5.2.14到PHP 5.3.5除5.3.0.5.3.1.5.3.2的几个过渡版本之外的PHP版本,如果PHP发布新的版本,只有安装方式上不发生变化就可以一直使用.注意:升级PHP后eaccelerato

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

本项目是基于nodejs开发,实现的功能是,什么值得买自动签到,自动评论功能,自动发邮件,支持多人多账号运行 目的是为了,解放双手,轻松获取什么值得买的经验和积分,得到更高的等级,从而突破很会员等级限制,如领取部分紧俏的优惠券 项目运行即执行签到和评论 目前规则:每天6:10 执行签到和评论功能,17:30执行签到结果邮件发送功能,执行间隔为随机时间,可自行修改. 由于值得买,每天前三条,发送评论有经验和积分,故该项目每天会随机发送3条评论,评论内容请到config.js文件中配置 如有条件,请

mysql自动安装脚本

为适应自己工作习惯和需要,花一点时间写了一个mysql自动安装脚本,供大家参考学习. 注意: 1.需要先安装cmake 2.数据库版本需要在第二步安装mysql时修改 3.该脚本是以root用户安装并启动 脚本内容如下: ######################################################################## #mysql自动安装脚本,其中变量/mysql_v_dir/和/port/可根据实际需要修改    # #执行脚本命令:sh mys

ipvsadm+keepalived+inotify-tools自动安装脚本

#!/bin/bash # # #this is install keepalived+lvs-DR # # tar_dir=/usr/src configure_yum() { echo "[rhel-local]">/etc/yum.repos.d/rhel-local.repo echo "baseurl=file:///media/Server">>/etc/yum.repos.d/rhel-local.repo echo "en