关于防止出现手机微信投票怎么刷票、微信刷票会不会被发现的技术

关于防止出现手机微信投票怎么刷票、微信刷票会不会被发现的技术,越来越多的人在平常生活中使用微信,以微信为载体的许多功能就被开发和使用了起来,比如——微信投票。于是乎,微信上兴起了各种投票,从小学生到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库爬了一些小网站的数据。



  1. #coding=utf-8  
  2. import urllib2  
  3. import urllib  
  4. import re  
  5. import threading  
  6. import sys  
  7. from time import ctime  
  8. import time  
  9. rlock = threading.RLock()  
  10. def vote(proxyIP,i,urls):  
  11.     try:  
  12.         #print "voting...%d..." % i  
  13.         #使用代理IP  
  14.         proxy_support = urllib2.ProxyHandler(proxyIP)  
  15.         opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler)  
  16.         #定义Opener  
  17.   
  18.         urllib2.install_opener(opener)  
  19.         #把opener绑定到全局  
  20.   
  21.         sendt = '投票'.decode('utf-8').encode('gb2312')  
  22.   
  23.         #设置刷票地址  
  24.         #post数据bn  
  25.         values = {}  
  26.         req = urllib2.urlopen(urls)  
  27.         #直接打开这个URL  
  28.         html = req.read()  
  29.         #读取返回数据  
  30.         if html.find('true'.decode('utf-8').encode('gb2312')):  
  31.             print "投票 [%d] 成功" % i  
  32.             return 1  
  33.         else:  
  34.             print "投票 [%d] 失败" % i  
  35.             return 0;  
  36.     except Exception:  
  37.         return False  
  38.   
  39. if __name__ == "__main__":  
  40.     args = sys.argv  
  41.     if(len(args) == 3):  
  42.         ipFile = open(args[1]);  
  43.         ipList = ipFile.readlines()  
  44.         ipFile.close()  
  45.         length = range(len(ipList))  
  46.         threads = []  
  47.         for i in length:  
  48.             ipLine = ipList[i]  
  49.   
  50.             ip=ipLine.strip()  
  51.             proxy_ip = {'http': ip}  
  52.             t = threading.Thread(target=vote,args=(proxy_ip,i,args[2]))  
  53.             print "get ",args[2],ip  
  54.             threads.append(t)  
  55.         for i in length:  
  56.             threads[i].start();  
  57.             if i%100:  
  58.                 time.sleep(5)  
  59.                 #每100个线程等待 5秒  
  60.         for i in length:  
  61.             threads[i].join()  
  62.   
  63.     else:  
  64.         print """刷票工具 
  65.                 python brush.py IP文件 Get地址: 
  66.  
  67.                 """  

然后我们运行来看看结果
原来的票数

这里写图片描述

运行了15分钟之后

这里写图片描述

### 关于微信刷票脚本的实现方式 微信刷票脚本的核心在于通过程序模拟用户的操作行为,完成投票流程。以下是其实现的关键技术点以及可能涉及的方法: #### 1. **HTTP 请求与响应** 实现微信刷票脚本的第一步是理解 HTTP 协议的工作机制。通常情况下,用户访问网页并提交表单的过程可以被分解为以下几步: - 客户端向服务器发送请求 (Request),获取页面数据。 - 用户填写表单后再次发送请求,将表单数据传递给服务器。 - 服务器处理请求后返回响应 (Response)。 这一过程可以通过 Python 的 `requests` 库来模拟[^1]。例如,使用如下代码发起 GET 和 POST 请求: ```python import requests url = 'https://example.com/vote' headers = { 'User-Agent': 'Mozilla/5.0', 'Content-Type': 'application/x-www-form-urlencoded' } data = {'vote_id': '123', 'token': 'abc'} response = requests.post(url, headers=headers, data=data) print(response.text) ``` #### 2. **Cookie 与会话管理** 许多网站为了防止恶意刷票,会在每次请求中验证 Cookie 或 Session ID。因此,在编写脚本时需要注意保存和重用这些信息。Python 中的 `Session` 对象可以帮助简化这一过程: ```python session = requests.Session() login_response = session.get('https://example.com/login') vote_response = session.post('https://example.com/vote', data={'id': '1'}) ``` #### 3. **验证码绕过** 如果目标网站设置了验证码,则需要额外的技术手段解决此问题。常见的方法包括但不限于: - 使用 OCR 技术解析图片验证码[^1]。 可以借助第三方库如 Tesseract 来识别验证码内容。 - 自动刷新直到获得可解码的验证码。 #### 4. **JavaScript 动态交互** 部分现代网站依赖 JavaScript 渲染页面或执行逻辑。在这种情况下,仅靠简单的 HTTP 请求无法完全模仿真实用户的行为。此时可以考虑使用 Selenium 工具驱动浏览器进行自动化操作[^2]: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com/vote') element = driver.find_element_by_id('plus_button') element.click() driver.quit() ``` #### 5. **频率控制与反爬虫策略应对** 大量快速的请求可能会触发目标站点的安全防护措施。为了避免 IP 被封禁或其他惩罚性动作,建议加入随机延迟时间,并定期更换代理地址。 --- ### 注意事项 尽管技术上可行,但需注意的是,任何形式的人工干预式刷票都违反了公平竞争原则,甚至触犯相关法律法规。开发者应谨慎评估潜在风险,合法合规地运用此类技能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值