使用 Python 进行HTTP代理 多线程刷(投)票
来源:互联网 发布:用友软件实施维护费用 编辑:程序博客网 时间:2024/04/28 10:10
这几天朋友参加比赛需要,就写了个脚本帮忙刷票.
我们首先来到要投票的网站上来看看。
随便找一个投上一票
居然不用登陆,当然是每个IP只能投一票。
打开Chrome dev tools, 看一下
Get请求。
那直接把Request URL复制下来,这个就是用于刷票的URL
按理来说只要把这个URL 发给任何一个人诱惑他点开,就是帮你投票了。
他返回了一个Json数据格式。告诉我们已经投过票了。
然后我们登VPN 换一个IP 试试看。
Json “Total” 名称 就是当前的票数。“result”为true 显然告诉我们投票成功了。
那的确是这样的。
然后想要刷票呢,我们需要找一些开放HTTP代理的IP。我找了半天然后推荐这个网站 可以直接抓取IP到这种格式。
然后接下来就是写脚本了。
由于我没有长期接触过Python 网络方面的编程。以前也只是看着用Requests库爬了一些小网站的数据。
可以先看下这篇博文
#coding=utf-8import urllib2import urllibimport reimport threadingimport sysfrom time import ctimeimport timerlock = 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 Falseif __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分钟之后
0 0
- 使用 Python 进行HTTP代理 多线程刷(投)票
- Python使用HTTP代理 Proxy
- python使用http、https代理
- 使用Python多线程抓取并验证代理
- Python使用ThreadingTCPServer创建多线程代理
- python中使用threading进行多线程编程
- python中使用threading进行多线程编程
- 52.[Python]使用threading进行多线程编程
- Python对Http接口进行多线程模拟压力测试
- Python穿越http代理
- python http代理
- python进行多线程计算
- http使用代理
- git 使用http代理
- python多线程筛选代理ip
- 玩Python之HTTP代理
- python http请求设置代理
- python 进行多线程编程,使用Semaphore控制线程数
- PHP常用函数
- PYTHON 递归函数
- Spring核心技术(六)——Spring中Bean的生命周期
- 捋一捋AdaBoost(1):算法实现
- MySql处理重复Insert或者update技巧(加入ignore)
- 使用 Python 进行HTTP代理 多线程刷(投)票
- 30学习写论坛-7
- ES5, ES6, ES2016, ES.Next: JavaScript 的版本是怎么回事?「译」
- ZZULIOJ 1426: 字典树again【字典树+bfs】
- C语言数据结构——链表解决在结构体中的数据存储问题
- Cmake 构建程序
- 评教维护--成长之路
- SQLite学习笔记三:SQLite可视化管理工具汇总
- 强悍的 ubuntu —— ubuntu 与 windows 双系统的交互