实现比如说,对一个网页页面的一个按钮进行不断点击来刷票的;再比如穷举一个4位的密码。是用什么实现的呢?PHP?写脚本?这样的东西是叫网页“脚本”吗?有没有实现的例子呢?
回复内容:
时隔一年,学习了一些知识,半年前就已经试着写了12306刷票器。今天偶然看到以前自己的提问,就来自问自答一下吧。
第一,无论使用什么语言实现,首先要懂得原理——web最基本的原理是HTTP协议,要先去理解HTTP协议,知道什么是Get请求Post请求。
第二,弄懂网站的工作原理。所谓工作原理就是从后台服务器的数据如何到前端,前端的数据如何发送给服务器,以及服务器是如何知道每一次请求都是来自你这个用户的。也就是说明白cookie和session。
学习的途径可以试着学一种后台语言试着写个用户注册登录的demo,这样理解最深刻。
或者随便找个网站用chrome的F12把“控制台”,打开看Network里的每个请求。
当然最好还是学个一种后台语言,试着做个小网站。
第三,懂点密码学。登录的时候,填写的密码一般是加密后才发送的,所以要模拟登录就需要密码加密。了解了解MD5和RSA等等加密算法,具体算法怎么实现的网上都有现成的可以下载研究或者直接用。
第四,图像文字信息识别。这个是为了搞定验证码的,这个我研究不深,对于简单的验证码用ocr就可以。稍微有噪点之类的干扰的用Open CV也可以去除。当然,重叠、旋转等等的复杂验证码,需要更深入的“机器学习”等等知识了。
第五,写刷票工具。工具看写在什么平台了,windows、Linux还是Android?一般跑在windows上用的话,语言很多可供选择的,,C#、java都可以,或者直接写在网页上用javascript写ajax也行。
当然,用好工具和开源库会事半功倍, Apache有个HttpClient可以帮助模拟HTTP协议很方便HttpClient - HttpClient Home
最后,当然了,如果目的只是写一个刷票器,其实不需要如此大动干戈,去细究每个环节的原理和技术细节。但是我知道题主一定不只想做个简单的刷票器,刷票器只是个阶梯。这样学来的“刷票器”的技术一样可以进入教务处疯狂地采集照片做个facemash,然后顺手做个Facebook成为扎克伯格,改变世界,不是吗?
加油吧,年轻人。
反对排名第一的答案。
首先做个简单的刷票器没那么麻烦。
你可以学填表,七八分钟就能学会的东西干嘛搞这么高大上的感觉。
然后可以学习抓包用post或者get让刷票速度更快,最后你可以学习怎么换ip。
我高二时帮班主任做了个刷票软件,就用了一个晚上,功能齐全,成功帮班主任的女儿刷成第一名。
补充一点,你所谓的点击按钮就是填表,可以用vb的webbrowser控件实现,简单的不行。
穷举一个四位的密码,你用0123456789作为基底,然后从0123 0124....一个个试
最后再补充一下,脚本是解释执行,不生成机器代码,比如php,javascript(AJAX技术用到的语言),其它如c/c++,.net,delphi等都是编译型语言,是生成机器码的
我现在也在在琢磨这个东西,这是我之前写的一个程序C# 刷票程序 - woostundy
,实现了构造Http请求和换IP。
现在正在研究需要身份验证的投票能否刷票。