用python做一个简单的投票程序_如何编写一个自动投票程序

本文探讨了如何编写自动投票程序,通过手动投票分析页面交互,揭示了投票过程中涉及的POST数据和Cookie信息。作者指出,投票程序通常需要两次服务器交互,并依赖于Session来防止重复投票。在理解了这一机制后,可以通过模拟POST请求和管理Session来实现自动投票。同时,文章也暗示了投票程序防止自动投票的策略,即利用Session限制和可能的验证码技术。
摘要由CSDN通过智能技术生成

1

如何编写一个自动投票程序

我经常去网站抓些东西,有时也做一些自动填写表单的事情。最近接手了一个投票的任

务,

也即需要编写一个程序自动投票,

从而也引发了如何编写自动投票程序和如何编写投票

程序(投票程序怎么样防止自动投票)的话题。正所谓道高一尺、魔高一丈。自动投票和投

票程序本身就是一种对弈状态。

如何编写投票程序,大致分为这么几步:

1

:手动投票,分析中间出现的每一个页面的代码,找出投票规律。

2

:捕获提交页面的时候所

post

的信息。

3

:编程模拟这个手动过程。

我以我刚写的这个自动投票程序为例。在此我不会给出网址链接(保密)

,也不会给出真实

数据和截图。

首先手动投票,

是一个多选投票,

点击投票按钮后,

会弹出一个网页,

这个网页会问你是确

认还是放弃,

点击确认后,

返回投票成功的提示。

当在此点击投票按钮的时候提示已经投过

一票,不能重复投票。关闭所有浏览器窗口,打开一个新窗口,投票,仍然可以投票成功。

根据如下行为,可以得出如下结论:

1

:投票需要有两次和服务器的交互,第一次向服务器提交投票结果,第二次交互向服务器

提交是否确认此结果。

2

:此两页面之间的

session

是有联系的,也即同一个

session

下不能投两次票。当关闭浏览

器,重新开启刘拉尼后,因为相当于新开了一个

session

,所以仍然会投票成功。

知道了这个后,就开始抓去两次交互的

HTTP

头信息(

Header

信息)

第一次交互的信息如下(点击投票按钮)

post

post

"checkvalue=32&bbb=%CD%B6%C6%B1&ilc=0&kkk=22"

,其中

checkvalue=32

即为投票选

中的复选框的值,

bbb

为投票按钮的名称,

"%CD%B6%C6%B1"

"

投票

"

两个汉字的转码。

ilc=0

kkk=22

是两个隐藏域中信息,作用还不明确。

然后接收到的

Header

如下:

可以看到里面有一个关键的地方

Set-Cookie

:

ilc

=

22

,也即设置了一个

cookie,

这个

cookie

值为

22

,也即

post

上去的

kkk

的值,猜测这是此次投票的编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值