前言

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

原理

刷票的原理很简单,就是相当于模拟人登录网站去投票,只是把这个过程程序化,让程序代替人到网站去投票。具体一点说把,首先是客户端(我们)发出请求(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自动化刷投票脚本开发,微信投票再也不需要发红包了...相关推荐

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

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

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

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

  3. python的运维开发课程_Python自动化运维开发实战课程方案

    课程简介:? ? 随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分.面对越来越复杂的业务以及日趋多样化的用户需求,不断扩展的IT应用需要合理的IT运维保障IT服务灵活便捷.安全稳定 ...

  4. python爬虫爬取微信网页_python下爬虫爬取微信公众号文章给网站的相关操作与问题...

    一.出发点 在dodo团队知乎号开刊文章中已介绍过本团队平常的实际工作,我们是一个从事游戏与金融结合的项目开发与运营团队.技术上主要是从事游戏分期.玩后付支付插件.游戏充值app等前后端开发,主要使用 ...

  5. 公众号python接入机器人_使用python实现小机器人自动回复可扩展开发微信公众号的小机器人...

    api来之图灵机器人.我们都知道微信公众号可以有自动回复,我们先用python脚本编写一个简单的自动回复的脚本,利用图灵机器人的api. http://www.tuling123.com/help/h ...

  6. android 开发微信群发,Android 记录一次开发微信分享功能的吐槽与思考

    在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * ...

  7. java微信接收消息_使用Java开发微信公众平台(二)——消息的接收与响应

    上一篇文章中,我们学习了使用Java语言开发微信公众平台的第一部分--环境搭建与开发接入.那么,本篇文章,我们将在此基础上,学习[消息的接收与响应].喜欢本文,请点击下方喜欢按钮呗!❤️ 当然,我们在 ...

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

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

  9. python运维开发_Python自动化运维开发----基础(一)

    前言:环境是python3 1.第一个python程序(在学任何一门语言的时候第一程序好像都是hello world),下边我们用python的解释器去输出一个hello world>>& ...

  10. python 财务报表审计_python 自动化审计

    本文通过介绍在python开发中经常出现的常规web漏洞,然后通过静态和动态两种方式对python代码进行自动化审计挖掘漏洞,并且展示自动化系统在自动化审计python应用代码的成果,本文比较长,请耐 ...

最新文章

  1. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍
  2. 一个三非渣本的Java校招秋招之路,吊打面试官
  3. 你还傻傻的分不清“和服和浴衣吗?
  4. C语言程序运行慢是什么问题,为什么cgo的表现如此缓慢?我的测试代码有什么问题吗?...
  5. 盲人可以也做软件工程师,反思一下老哥
  6. 第27讲:令人抓狂的 JavaScript 混淆技术
  7. 在WinForm中实现省市级联的效果
  8. 2个html文件顺序播放,CSS3两个动画顺序衔接播放
  9. 3.2配置自定义的路径映射
  10. linux平台 oracle 数据库 安装文档
  11. 线条边框简笔画图片大全_表情包丨表情包简笔画图片大全可爱
  12. android:DDMS查看Threads
  13. ObjectiveC基础-ivar
  14. 怎么更改网络选项为家庭计算机,教你无法设定这是一台家庭计算机怎么操作
  15. word2010分页设置页眉
  16. 计算机怎样设置光盘启动项,怎么设置开机启动项-设置光盘启动教程
  17. EasyPoi Excel简单导出导入
  18. PV、UV、VV、IP是什么意思?
  19. 低功耗SD\SPI NAND Flash芯片
  20. MATLAB学习七(二):数组比较sortrows

热门文章

  1. Python非线性拟合自定义函数参数(对标MATLAB-nlinfit函数)
  2. 定义函数,实现折半查找算法
  3. Webpack Chunk 分包规则
  4. 海思hisi v350报错librecovery (native:platform) should not link to libhi_common (native:vendor)
  5. qlv转mp4绿色版工具
  6. Ubuntu的shell脚本踩keng-unexpected operator
  7. textlive、sublime和SumatraPDF配置
  8. bootstrap之栅格化
  9. 大疆rm专属通道算法类投递总结(2022.08)
  10. redirect_uri 域名与后配置不一致是什么意思_中科三方DNS专家手把手教学——定位域名解析不生效问题...