Python自动化刷投票脚本开发,微信投票再也不需要发红包了

2023-11-14

前言

现在部分比赛为了推广赞助商或者比赛本身,需要参赛队伍进行网上拉票,甚至票数还会占一定比例的成绩。因此,刷票也就应运而生了。此次我们团队参加一个比赛,就需要网上投票决出前几名,作为一位技术人员,当然是得“解决”技术能解决的问题嘛,所以就写了个刷投票插件来刷一刷。

原理

刷票的原理很简单,就是相当于模拟人登录网站去投票,只是把这个过程程序化,让程序代替人到网站去投票。具体一点说把,首先是客户端(我们)发出请求(Request)给服务端(投票网站),跟他们说,我们需要看他们网站的信息,然后服务端就会回复(Respose)我们,我们再把填好的表单发给他们(Request),他们收到后就会回复我们(Respose)。
在这里插入图片描述

主要内容

  • 分析网站
  • 表单提交
  • 构造代理IP池

1. 分析网站

由于每个网站需要提交的信息都不一样,那么首先我们需要对目标网站进行相对应的分析,找出他们的表单接口(也就是URL或者叫网址)以及我们需要提交的信息。

1.1 收集信息

使用F12,打开审核元素,点击Network,真实地进行一次表单提交

框住的两个内容就是我们需要知道的一部分表单信息

- Request URL:请求网址,我们提交的信息就是传到这个url里面去

- Request method:请求方法,我们提交的方法
在这里插入图片描述
以上就是需要获得的基本信息,根据这些信息我们就可以编写刷票插件了,但作为一个对自身有高标准严要求的程序员来说,仅仅这样就足够吗?当然不会啦,我们得找一找这个提交过程有没有什么漏洞。

怎么找?分析源代码,找了找,果真还让我找到了!
在这里插入图片描述

看出什么没有,它这里有两个致命的漏洞:

\1. 它允许提交3支或3支以上的队伍,并且没有限制最大数量,只限制了最少数量。

\2. 它没有进行相同数据的筛选。

表单提交

构造表单信息

# 请求头信息
headers = {
 'Accept': '*/*',
 'Accept-Encoding': 'gzip',
 'Accept-Language': 'zh-CN',
 'Connection': 'keep-alive',
 'Content-Length': '16',
 'Content-Type': 'application/x-www-form-urlencoded',
 'Host': 'www.dingnf.com',
 'Origin': 'http://www.dingnf.com',
 'Referer': 'http://www.dingnf.com/active/wxws_s',
 'User-Agent': 'Mozilla/4.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.3029.110 Safari/537.36',
 'X-Requested-With': 'XMLHttpRequest'
}
 
# post表单网址
url = "http://www.dingnf.com/active/wxws_t"
params = {'ids': ['22', '22', '22']}
r = requests.post(url=url, data=params, headers=headers, proxies=proxies)

构造代理IP池

构造IP代理容器

def WriteIPadress():
 all_url = [] # 存储IP地址的容器
 # 代理IP的网址
 url = "http://api.xicidaili.com/free2016.txt"
 r = requests.get(url=url)
 all_url = re.findall("d+.d+.d+.d+:d+",r.text)
 with open("D:\code\python\new\Brush ticket\IP.txt",'w') as f:
 for i in all_url:
 f.write(i)
 f.write('
')
 return all_url

主函数
在这里插入图片描述

由于某些IP地址是存在问题的,所以需要设置异常处理,以便让程序能够正常运行,而API的数据每15分钟更新一次,我们每跑完一遍列表的时间也差不多,因此也就不做其他处理了。

运行日志

在这里插入图片描述

代码

在这里插入图片描述
另外怕大家不会使用,直接给大家准备了写好的,直接可使用!
源码放在百度云盘上了需要可以微信扫描下方CSDN官方认证二维码免费领取

关于Python学习资料:

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以手机保存下方图片微信扫描CSDN官方认证二维码免费领取【保证100%免费】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python自动化刷投票脚本开发,微信投票再也不需要发红包了 的相关文章

随机推荐

  • vue动态表单封装

    需求 根据传参动态生成表单 例如搜索表格的表单 1 组件封装
  • Java--concurrent并发包下阻塞队列介绍

    JDK提供了7中阻塞队列 这里介绍其中3中 剩余的以此类推原理相同 1 ArrayBlockingQueue package com seeyon queue import java util concurrent ArrayBlockin
  • FastJson中JSONObject用法及常用方法总结

    人无远虑 必有近忧 1 什么是FastJson JSONObject fastjson是阿里巴巴的开源JSON解析库 它可以解析JSON格式的字符串 支持将Java Bean序列化为JSON字符串 也可以从JSON字符串反序列化到JavaB
  • 二本本科,银行外包开发工作 4 个月有余。聊聊外包公司工作的一些真实感受!...

    最近会更新一系列关于在外包工作的真实经历和感受的文章 挺多小伙伴都比较感兴趣的 文章内容都来自在外包公司工作的读者的真实经历 另外 不同的外包公司 不同的外包工作 不同的甲方等等因素都会影响每个人做外包工作的体验 希望大家在发表自己言论的时
  • [1128]commons-lang里面StringUtils方法说明以及案例

    文章目录 1 public static boolean isBlank String str 2 public static boolean isEmpty String str 3 public static boolean isNot
  • mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

    mysql Can t connect to local MySQL server through socket var lib mysql mysql sock 今天在linux中安装了mysql但在连接时出现Can t connect
  • 【数据结构】CH3 栈和队列

    目录 前言 一 栈 1 栈的定义 1 相关概念 2 栈的抽象数据类型 2 栈的顺序存储结构及其基本运算的实现 1 顺序存储结构 2 初始化栈InitStack s 3 销毁栈DestroyStack s 4 判断栈是否为空StackEmpt
  • 蓝桥杯真题:测试次数

    这题是用动态规划去做的 参考 蓝桥杯 2018蓝桥初赛 测试次数 扔手机 动态规划 Miserable ccf的博客 CSDN博客 我们的目标是求取第n层 有m台手机下最优策略最坏情况下的测试数 我们定义dp i j 代表剩余i层 j台手机
  • Qt Creator + github copilot配置教程:AI编程新体验

    文章目录 前言 一 环境介绍 二 Copilot配置 1 安装nodejs 2 源码下载 方法a 代码克隆 方法b 直接下载源码包 3 路径配置 4 github copilot开通 三 安装Qt Creator 1 安装包下载 2 安装目
  • 五款实用的微信小程序(免费证件照)

    在这里给大家推荐几个平时常用的微信小程序 真心方便实用 绝对不是打广告 小米云证件照 目前很多证件照APP不是要收费 就是里面内置了许多广告 体验不佳 小米云证件照可以用三个词概况 免费 干净 无广告 懂的自然懂 扫描全能王 老牌的扫描工具
  • docker基础:联合文件系统

    首先docker的镜像是由一层一层的文件系统组成的 不同 Docker 容器就可以共享一些基础的文件系统层 同时再加上自己独有的改动层 大大提高了存储的效率 这个基础是联合文件系统 联合文件系统 UnionFS 是一种分层 轻量级并且高性能
  • 修改host方法

    打开路径 C Windows System32 drivers etc 将hosts文件拷贝出来修改之后放回去覆盖即可 想得到ip可以先ping一下那个域名 以下是一个例子 左边是ip 右边是域名 不用加 223 6 248 220 www
  • vue3+Element-plus el-select 下拉表格组件(2023-08-21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效)

    2023 08 21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效 2023 06 28 TSelectTable组件新增查询条件 效果如下 一 最终效果 二 代码示例
  • 【故障处理】EXP-00091 Exporting questionable statistics

    数据库平台 soalris10 数据库版本 9i 日期 2013 2 19 项目 关键字 1 Exp 00091 2 Exp 问题 使用exp导出时 出现错误 分析 oracle10g oerr exp 00091 00091 00000
  • Python报错No module named 'cv2'

    import cv2 Python运行过程中报错No module named cv2 Traceback most recent call last File Users congjam PycharmProjects Jam Test
  • python uwsgi_Python/WSGI应用快速入门

    Python WSGI应用快速入门 这个快速入门将会告诉你如何部署简单的WSGI应用和常见的web框架 这里 Python指的是CPython 对于PyPy 你需要使用特定的插件 PyPy插件 Jython支持正在开发中 注解 要遵循此快速
  • mysql表分区

    1 分表与表分区的区别 1 1 关于分表 分表是将一个大表分为几个或是多个小表 例如 table 1每天有1Kw的数据量 table 1随便时间的增长会越来越大 最终达到mysql表的极限 在这种比较极端的情况下 我们可以考虑对table
  • Android 路由框架ARouter源码解析

    作者 小马快跑 我们知道在使用ARouter时 需要在build config里配置 annotationProcessor com alibaba arouter compiler 1 2 2 并且知道annotationProcesso
  • freetype_4_使用freetype显示多行文字

    freetype 4 使用freetype显示多行文字 从左往右显示 1 先描绘一行文字 2 取出该行文字的最大高度 以此为基准算出下一行的位置 3 再描绘另一行文字 根据上一篇文章中代码修改主函数部分 int main int argv
  • Python自动化刷投票脚本开发,微信投票再也不需要发红包了

    前言 现在部分比赛为了推广赞助商或者比赛本身 需要参赛队伍进行网上拉票 甚至票数还会占一定比例的成绩 因此 刷票也就应运而生了 此次我们团队参加一个比赛 就需要网上投票决出前几名 作为一位技术人员 当然是得 解决 技术能解决的问题嘛 所以就