前言

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

原理
刷票的原理很简单,就是相当于模拟人登录网站去投票,只是把这个过程程序化,让程序代替人到网站去投票。具体一点说把,首先是客户端(我们)发出请求(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分钟更新一次,我们每跑完一遍列表的时间也差不多,因此也就不做其他处理了。

运行日志

代码

在这里还是要推荐下我自己建的Python学习群,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!


http://www.taodudu.cc/news/show-2593602.html

相关文章:

  • 12306购票辅助工具
  • 这边刚接触Python,看了一下Python的微信刷票小程序,自己看着人家代码改了一下出错了,为什么?
  • 关于投票活动主办方对于微信上投票怎样刷票及微信投票怎样查刷票
  • 买火车票的过来看看,提供一个小工具,不一定能买到票,但是可以实现自动登录,自动刷票,自动重新提交订单!...
  • 【工具】可以在线免费收发邮件的十几个临时邮箱网站
  • 网络投票的另一面:“刷票”与“防刷” 大PK
  • 使用CefSharp开发一个12306“安心刷票弹窗通知”工具
  • 关于防止出现手机微信投票怎么刷票、微信刷票会不会被发现的技术
  • 制作在线投票刷票器
  • 防刷票常见方案
  • 防止刷票的一些方法介绍
  • 记一次刷票过程的感想
  • 关于微信刷票的Python源码
  • 程序员版--致青春(一)——facejoking刷票工具(谈刷票原理)
  • 帮你一个简单的微信怎么刷票及微信如何刷票技巧「图文教程」
  • 微信刷票python代码_微信刷票漏洞详解, Python脚本实现一秒破万!
  • 自动刷票工具的实现机理简介
  • 如何做网络投票的刷票外挂(一)
  • 新手写的一个12306刷票工具
  • 【CPU占用高】software_reporter_tool.exe
  • 永久禁用software reporter 进程,占用高解决方法。【永久禁用software_reporter_tool.exe程序】
  • UNITY3D报错 bug reporter
  • software_reporter_tool 进程关闭的优雅法子
  • grafana-reporter
  • unity 安卓端输出日志神器--Reporter插件
  • python安装reporter
  • Unity方便查看日志的插件Reporter
  • Chrome浏览器占用CPU资源过高(Software Reporter Tool)
  • GitLab中用户的五种权限 Guest、Reporter、Developer、Master、Owner
  • UE4 创建地形失败:Unreal Engine 4 Crash Reporter

朋友圈微信投票很麻烦?python开发个自动化刷票脚本,再也不用头痛了!相关推荐

  1. 别在为朋友圈微信投票而烦恼:网络微信投票怎么刷票及微信投票怎么拉票都在花钱操作

    别在为朋友圈微信投票而烦恼:网络微信投票怎么刷票及微信投票怎么拉票都在花钱操作,互联网时代的到来,让人们之间的交流更加便利,而在这一大背景之下,紧紧扼住"交互"咽喉的微信,自然也就 ...

  2. 微信公众号开发中分享功能 分享微信朋友圈/微信好友

    微信公众号中经常遇到的问题就是分享链接到微信朋友圈 微信好友一类的需求. 下边走一下需要操作的流程 1.首先再项目中(一般就放到自己的公共文件中引入即可,vue中引入到index.html中)引入微信 ...

  3. 一个能发朋友圈微信pc客户端

    一个能发朋友圈微信pc端! 微信通信接口定义 1.基础消息类型 1.客户端发送的心跳包 HeartBeatReq = 1001; 2.消息接收确认回复(接收或拒绝接收) MsgReceivedAck ...

  4. python实现抢劵_用Python实现微信自动化抢红包,再也不用担心抢不到红包了

    1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...

  5. python清理垃圾_用Python自动清理系统垃圾,再也不用360安全卫士了

    用Python自动清理系统垃圾,再也不用360安全卫士了 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:.tmp.._mp)日志文件(.log).临时帮助文件(.gid ...

  6. 360软件管家怎么下载python_用Python自动清理系统垃圾,再也不用360安全卫士了

    用Python自动清理系统垃圾,再也不用360安全卫士了 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:.tmp.._mp)日志文件(.log).临时帮助文件(.gid ...

  7. python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  8. python抓取朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)...

    原标题:如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下) 前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往 ...

  9. 微信分享到朋友圈的链接没有图片。开发工具中正常没有报错-解决方案

    重要的话说三遍 一定要保证你写的程序调用的接口,在"微信开发工具"中正常没有报错 一定要保证你写的程序调用的接口,在"微信开发工具"中正常没有报错 一定要保证你 ...

  10. python微信朋友圈刷图_用python中的itchat可视化微信朋友圈

    itchat是python与微信网页版连接的api,作为测试,博主利用itchat爬取了自己的微信并进行可视化 首先登录微信,定义函数用来储存好友信息 import itchat import mat ...

最新文章

  1. PHP数据结构之——链表
  2. 使用chardet判断编码方式
  3. HD 2602 Bone Collector (0-1背包)
  4. 检索数据_13_从表中查询空值
  5. SAP云平台上的502 Bad Gateway错误
  6. oracle块空间的使用,Oracle管理存储架构(二)--Oracle管理数据块空间
  7. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本对齐,段落中超出屏幕部分文字自动换行...
  8. Installation failed, deleting ./composer.json.安装phpunit报错解决方案
  9. odoo12 日历模块_odoo12
  10. 白鹭php源码,白鹭/CDNDrive
  11. windows下安装nodejs多版本管理工具nvm-windows
  12. 搭建大数据开发环境-Hadoop篇
  13. 如何识别SQL Server中运行缓慢的查询
  14. 学习笔记(01):5天Python闯关训练营-103期-re模块使用案例
  15. 怎么在csdn中找到自己发布的帖子
  16. H5 编辑器 Tinymce之解决图片上传/粘贴
  17. 基于51单片机的智能雨刷设计
  18. B. 三维空间的点(继承)
  19. python 报 KeyError: ('coupon_type', 'occurred at index act_code')故障
  20. 即时通讯功能技术方案

热门文章

  1. C++:实现量化存在净额结算协议的交易对手风险下的利率互换估值公式测试实例
  2. HTML/CSS/Javascript注册登陆界面全模版(表单验证/验证码生成/敏感词屏蔽/炫酷动画/账号信息储存)
  3. 什么是monitor
  4. r 选取从小到大的数据_r 选取表格的一列数据库
  5. LabVIEW两种方法实现Excel数据(含汉字)读取
  6. 2018,丁磊的野心静悄悄
  7. Swift-基本运算符
  8. 【渝粤题库】陕西师范大学202161社会保障学 作业(高起专)
  9. 实现主人领养宠物并带宠物去玩,狗狗叼飞碟,企鹅去南极游泳
  10. 怎样下载网页上的视屏到本地