第三方投票自动化刷投票脚本代码
主要内容
剖析网站
结构署理IP池
- 剖析网站
由于每个网站需求提交的信息都不一样,那么首先咱们需求对方针网站进行相对应的剖析,找出他们的表单接口(也便是URL或者叫网址)以及咱们需求提交的信息。
1.1 搜集信息
首先咱们登录方针网站
方针网站
运用F12,打开审阅元素,点击Network,实在地进行一次表单提交
框住的两个内容便是咱们需求知道的一部分表单信息
- Request URL:恳求网址,咱们提交的信息便是传到这个url里面去
- Request method:恳求办法,咱们提交的办法
表单信息1
下面有两个框分别框住两个不同的信息区域,详细有什么用呢?下面就来详细解释一下这个
- Request Headers:恳求头,当咱们拜访网站的时候,咱们都需求提交一个恳求头曩昔,以证明咱们不是爬虫,而是实在的拜访,所以咱们要把这个拿到,以便假装咱们不是爬虫。 QQ老友列表获取
- From Data:这便是咱们要提交的数据了,现在提交的数据都是以json格局提交,依照这些信息写好咱们需求提交的json数据就好
表单信息2
以上便是需求获得的基本信息,根据这些信息咱们就能够编写刷票插件了,但作为一个对本身有高标准严要求的程序员来说,仅仅这样就满足吗?当然不会啦,咱们得找一找这个提交过程有没有什么漏洞。
怎样找?剖析源代码,找了找,果然还让我找到了!
表单漏洞
看出什么没有,它这里有两个丧命的漏洞:
- 它答应提交3支或3支以上的队伍,并且没有约束最大数量,只约束了最少数量。
- 它没有进行相同数据的挑选。
意思便是说,咱们能够一次提交几百上千个,甚至上万个相同的数据。但我会这么做吗?考虑到结果的话必定不会,由于没有人能够在很短时间内投很多票,要是他们清查起来,那发现还不简单?究竟咱们是在仿照实在微信投票嘛,所以就投3票给自己好了,躲藏功与名。
2. 表单提交
好了,已然把搜集到的数据都收拾好了,那么就开始写代码进行表单提交了。
2.1 运用到的库
requests:非常好用的第三方库,用于表单提交
- 1
Requests库官方技术文档
把它看一遍,所有操作就没问题了,下面就来写代码吧!
2.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.nupcies.com', 'Origin': 'http://www.nupcies.com', 'Referer': 'http://www.nupcies.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.nupcies.com/active/wxws_t" params = {'ids': ['22', '22', '22']} r = requests.post(url=url, data=params, headers=headers, proxies=proxies)
突然发现问题来了,只能提交一次!这是为什么?
3. 结构署理IP池
大部分投票网站都会记载投票的IP地址,避免同一个IP多次投票,那怎样办?咱们能仿照实在投票,还换不了IP地址?换IP地址是能够的,不过比较麻烦,咱们有一种更加简洁的办法:运用署理服务器去爬去某个网站的内容,那对方网站上显现的就不是咱们实在的IP地址了,而是署理服务器的IP地址,在python中,运用署理服务器设置很简单。