关于微信刷票的Python源码
微信刷票,越来越多的人在平常生活中使用微信,以微信为载体的许多功能就被开发和使用了起来,比如——微信投票、微信刷票。于是乎,微信上兴起了各种投票,从小学生到gov部门的投票活动都有,微信刷票交易也越来越火。微信刷票单纯在请求的技术手段上,都是正常的访问请求,基本是没法识别的,但它真的像吃瓜群众一样说的没法认出来吗?未必!
1.水军为了做更多生意自曝身份,在微信昵称上用了显而易见的刷票词语,比如用“票”筛选投票数据,就得到了大量的刷票信息,见图:
这样,只要通过一定的规则来匹配投票人的微信昵称,判断出投票人是否是微信刷票的,如果是进入黑名单。如果一个被投票的有大量黑名单的人给他投票,那么他就有花钱买票嫌疑。
2.每天投票量统计分析,如果是持续几天的投票。我们设想被投票人每天都在努力地拉票,从开始到结束应该是一个影响力越来越大或者影响力在结束的时候弱一点,所以每天的投票量统计曲线是先抑后扬或呈正态分布。把每个选 手的每天投票量曲线做出来,和其他人不一样的就一眼看出来了。
3.时段投票量统计分析,这个应该比较容易理解,投票时间应该符合一般人的作息时间,如果在凌晨一、两点某个选手出现大量的投票,而他白天投票量反正少,这就很难用正常投票解释了。
4.投票数爆发点与超越关系的分析。买票是需要成本的,被投票人买票的话当然是想用最少的成本取得第一。如果他被别人超越了的话,不想让自己先期投入变成“沉没成本”,只能加钱再买票再次超越别人。所以,如果一个选手多次被别人超越后投票数立马上升,特别是上升的票数都差不多(想象一下每次都是一百一百地买票),那就基本是刷票了。
5. 多人刷票的情况。这种情况下就有点好玩了,发展的结果是:
a.谁也不服谁,杠上了,超越关系明显。最后钱多的2,3个人超过其他人好多倍的票;
b.为了节约成本,保持第二或第三,在最后时段为了夺冠冲刺刷票,产生了一个非常异常的投票量曲线。
谁最清楚哪个人是微信刷票水军呢?应该是疼xun。如果是专门做投票系统,积累了大量数据的话,是可以建立模型识别是刷票行为的(至于为了点击量是否愿意做这个,或者做了这个不启用就不得而知了),小公司的话也可以用第1点做简单地判断,另外可以加验证码,增加投票时间操作,提高刷票水军的时间成本,另外验证码看多了眼睛也会花的偷笑。
延伸阅读:
这几天朋友参加比赛需要,就写了个脚本帮忙.投票
我们首先来到要投票的网站上来看看。
随便找一个投上一票
居然不用登陆,当然是每个IP只能投一票。
打开Chrome dev tools, 看一下
Get请求。
那直接把Request URL复制下来,这个就是用于刷票的URL
按理来说只要把这个URL 发给任何一个人诱惑他点开,就是帮你投票了。
他返回了一个Json数据格式。告诉我们已经投过票了。
然后我们登VPN 换一个IP 试试看。
Json “Total” 名称 就是当前的票数。“result”为true 显然告诉我们投票成功了。
那的确是这样的。
然后想要微信刷票呢,我们需要找一些开放HTTP代理的IP。我找了半天然后推荐这个网站 可以直接抓取IP到这种格式。
然后接下来就是写脚本了。
由于我没有长期接触过 Python 网络方面的编程。以前也只是看着用Requests库爬了一些小网站的数据。
- #coding=utf-8
- import urllib2
- import urllib
- import re
- import threading
- import sys
- from time import ctime
- import time
- rlock = threading.RLock()
- def vote(proxyIP,i,urls):
- try:
- #print "voting...%d..." % i
- #使用代理IP
- proxy_support = urllib2.ProxyHandler(proxyIP)
- opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)
- #定义Opener
- urllib2.install_opener(opener)
- #把opener绑定到全局
- sendt = '投票'.decode('utf-8').encode('gb2312')
- #设置刷票地址
- #post数据bn
- values = {}
- req = urllib2.urlopen(urls)
- #直接打开这个URL
- html = req.read()
- #读取返回数据
- if html.find('true'.decode('utf-8').encode('gb2312')):
- print "投票 [%d] 成功" % i
- return 1
- else:
- print "投票 [%d] 失败" % i
- return 0;
- except Exception:
- return False
- if __name__ == "__main__":
- args = sys.argv
- if(len(args) == 3):
- ipFile = open(args[1]);
- ipList = ipFile.readlines()
- ipFile.close()
- length = range(len(ipList))
- threads = []
- for i in length:
- ipLine = ipList[i]
- ip=ipLine.strip()
- proxy_ip = {'http': ip}
- t = threading.Thread(target=vote,args=(proxy_ip,i,args[2]))
- print "get ",args[2],ip
- threads.append(t)
- for i in length:
- threads[i].start();
- if i%100:
- time.sleep(5)
- #每100个线程等待 5秒
- for i in length:
- threads[i].join()
- else:
- print """刷票工具
- python brush.py IP文件 Get地址:
- """
然后我们运行微信刷票来看看结果
原来的票数
运行了15分钟之后
关于微信刷票的Python源码相关推荐
- python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...
- Python源码怎么读,听听顶级爬虫工程师的建议
图源来自Miguel Á. Padriñán 如何高效调试Python程序?Python内部的架构设计是怎样的?多业务类型的复杂系统中,Python语言的定位是? -- 以上问题,单从研究Python ...
- 【Python基础】加密你的Python源码顺便再打个包如何?
本篇为专属于"交通科研Lab"志愿者系列推文活动,为大家带来交通高校硕博们原创推文.为作者点赞,欢迎大家关注交流!!! 点击蓝字 关注我们 成为一个智慧.快乐和富有的人. --王宇 ...
- 微信html5小游戏源码70种
2019独角兽企业重金招聘Python工程师标准>>> 微信html5小游戏源码70种 http://download.csdn.net/detail/csdddn/9419955游 ...
- Python猫荐书系统之四:《Python源码剖析》
大家好,新一期的荐书栏目如期跟大家见面了. 先来看看今天的主角是谁:<Python源码剖析--深度探索动态语言核心技术>,2008年出版,作者 @陈儒 ,评分8.7分. 是的,你没看错,出 ...
- 微信小程序实例源码大全demo下载
怎么本地测试微信小程序实例源码 1.下载源码 2.打开微信开发者工具 3.添加项目->选择本项目目录->编译执行 微信小程序实例源码大全 微信小程序游戏类demo:识色:从相似颜色中挑选不 ...
- Python源码学习:多线程实现机制
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 本文分析Python中的多线程机制,主要通过一个多线程的脚本来分析多线程的基本操作与 ...
- Python源码学习:Python类机制分析-用户自定义类
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一文,分析了Python在启动初始化时,对内置类的一个基本的初始化流程,本文就简析 ...
- Python源码学习:Python类机制分析
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 本文主要分析Python中类时如何实现的,在Python中,一切都是对象:任何对象都 ...
- Python源码学习:Python函数浅析-函数闭包
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇分析了函数参数的分析后,本文分析函数闭包的实现.函数闭包即函数定义和函数表达式 ...
最新文章
- Linux下视频截取命令
- 《演讲之禅》助你成长为一名合格程序员
- 数学建模——TOPSIS综合评价模型Python代码
- 在Linux系统下防火墙开放所需要访问的端口号
- 修复删除/var/lib/dpkg目录后,无法使用apt-get命令问题
- [新手学go]关于go语言中的变量重复声明
- [Redux/Mobx] Redux怎样重置状态?
- MySql数据库索引原理
- python不等于_Python小课堂|注释+运算符
- ZZULIOJ 1090: 整数幂(多实例测试)
- Hystrix入门与分析(一):初识Hystrix
- 将Excel(.xlsx)中的数据导入到数据库中
- Hyperledger Fabric 或 Composer的configtx.yaml配置文件解析
- 内存free和available区别
- 摄氏度与华氏度相互转换
- 广州拟放宽“双一流”高校人才入户门槛
- A*搜索算法AStar_BFS
- java+testng+selenium的自动化测试代码
- 基于java的物流信息管理系统(计算机毕业设计)
- php socket 模拟http请求