前言

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

原理

刷票的原理很简单,就是相当于模拟人登录网站去投票,只是把这个过程程序化,让程序代替人到网站去投票。具体一点说把,首先是客户端(我们)发出请求(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%免费】

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

  1. python 自动化刷投票脚本开发 【刷微信投票】付源码

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

  2. 第三方投票自动化刷投票脚本代码

    第三方投票自动化刷投票脚本代码 主要内容 分析网站 表单提交 构造代理IP池 分析网站 由于每个网站需要提交的信息都不一样,那么首先我们需要对目标网站进行相对应的分析,找出他们的表单接口(也就是URL ...

  3. 云计算Python自动化运维开发实战 三、python文件类型

    为什么80%的码农都做不了架构师?>>>    云计算Python自动化运维开发实战 三.python文件类型 导语: python常用的有3种文件类型 1. 源代码     py ...

  4. 2018python培训-2018年5月python自动化运维开发课程新班正式开课!

    2018年5月python自动化运维开发课程新班正式开课! 作者: 更新时间::2018-05-16 新推出的ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运 ...

  5. 云计算开发教程:Python自动化运维开发实战流程控制

    今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python自动化运维开发实战流程控制. Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. P ...

  6. python executemany执行延迟_运维架构师-Python 自动化运维开发-031

    *运维架构师-Python 自动化运维开发-031 十九.Python3 操作数据库 1.Python3 操作 MySQL 1.基本介绍 Python3 操作 MySQL 数据库 可以使用的模块是 p ...

  7. python运维开发培训_运维架构师-Python 自动化运维开发-014

    运维架构师-Python 自动化运维开发-014 九.标准数据类型 1.为什么编程语言中要有类型 类型有以下几个重要角色:对机器而言,类型描述了内存中的电荷是怎么解释的. 对编译器或者解释器而言,类型 ...

  8. python 自动运维架构师_运维架构师-Python 自动化运维开发-013

    *运维架构师-Python 自动化运维开发-013 5.常用快捷键(附加课余研究) 1.Ctrl + Enter:在下方新建行但不移动光标: 2.Shift + Enter:在下方新建行并移到新行行首 ...

  9. python有架构师吗_运维架构师-Python 自动化运维开发-021

    *运维架构师-Python 自动化运维开发-021 十.文件操作 4.Python里的目录 所有文件都包含在各个不同的目录下,不过Python也能轻松处理.os模块有许多方法能帮你创建,删除和更改目录 ...

最新文章

  1. Linux里gedit和vim哪个好,linux下有没有leafpad一样快,emacs/vim一样强大,gedit一样易用的图形界面文本编辑器?...
  2. 64位OpenCV库生成32位库并配置环境变量
  3. 机器学习(Machine Learning)深入学习(Deep Learning)资料
  4. Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常
  5. 高中关于人工智能方面的课题_2019山东人工智能教育专项课题指南选题
  6. oracle12.2 redo 进程,【Oracle Database 12c新特性】TTnn TMON新的redo传输后台进程
  7. presto查询报错
  8. android+自动拨打电话,自动拨打电话 - 好玩的代码
  9. Anaconda出现Navigator Error的解决办法
  10. 如何弄ad装配图_AD打印装配图的细节
  11. echarts柱状图的宽度
  12. 微信小程序样式padding理解
  13. Hbase、Kudu和ClickHouse横向对比V2.0
  14. kubernetes dns详解
  15. STM32F429 14. TIM_(一)_基本定时器
  16. 服务器系统安装——以Dell R710为例
  17. ICH4芯片LAN控制器寄存器
  18. 用户登入系统的c语言代码大全,C语言 登录系统代码
  19. Universal Windows Platform(UWP)C++/CX之Page切换
  20. 通过年月获取这个月的月初和月末

热门文章

  1. 当把目标定为买一栋楼时,买一套房就变得轻而易举,有朋友时,一起疯一起乐一起干活;一个人时,刻苦学习,攻读我的圣经。 不管你身处何方,小黄人软件都是你强大的后盾。
  2. 普通程序员如何实现财富自由,迎娶白富美,走上人生巅峰!
  3. Java基本语法入门
  4. 浏览器连接不上网络但是qq等服务能联网的解决方法
  5. Google Chubby介绍
  6. The Chubby lock service for loosely-coupled distributed systems
  7. Zuul2 超时设置 重试 踩坑
  8. SpringBoot的starter到底是什么?
  9. 五级经典流水线执行 时间统计
  10. php 魔术方法 sleep,PHP 魔术方法: __sleep __wakeup