Java HttpClient抓取12306.cn的各种信息

上周末开始突然有个想法:搞一个火车票的信息查询系统,抓数据写个爬虫然后正则式解析下就OK了,关键技术还是如何破解12306.cn的那垃圾验证码系统。

最近找了个公司去实习,在公司就是做Java的一个小项目,主要工作就是写爬虫,然后Google的时候突然看到一个彩色图片通过Java程序黑白化的过程,黑白图片那就只有0和1啊,然后又无意间看到一篇博客,博主介绍了如何破解12306.cn的验证码的方法,那就正好嘛,搞起,咱也开发一个。

之前听说盛名火车票软件盗取余票网的信息,该余票网就是学长用Python开发的,我不知道他用的是什么方法破解验证码的,但是一个公司写的软件,小小的验证码都搞不定,这也太不应该了,余票网的网址是yupiao.info。

花了两个晚上的时间终于把验证码的代码敲完了,同时也100%通过。上周末算是累死了,白天各种调试傻逼的代码(不是该Java的代码,另一个Python工程的代码),晚上还要写到1点多的Java代码,头都大了,终于在周六晚上把验证码的代码搞定,很满足的去睡觉了。

以为这就可以了,但是我发现我错了,由于对HttpClient包太不了解了,就知道可以模拟浏览器获取网页的数据,但是由于各种傻逼,一直抓到的数据显示验证码输入错误,问了猫哥还是没有解决,Google了各种办法都不行,最后就是注释掉原来的几行代码就可以了,真傻逼。

不过其中也发现了,12306.cn的网站写的也真够2的,整个网页请求的时候Cookie的值从来是不变的,根本在代码中不需要强制设置Cookie值,就直接get请求数据就OK了。


今晚在机房终于看到了我想要的数据,同时也把老师要求的毕设的代码改好了。


明天晚上开始用Perl5Parser包来对抓取到的JS信息进行正则表达式处理,抓取出有用的数据表单,至此工作就应该全部完成了,但是这只是Java控制台版的,没用。

5月份出去面试安卓开发程序员的时候总是被鄙视,总是说我代码基础挺好,就是没做过安卓开发,我就擦了,安卓是什么啊,就那么难学么,fuck。

所以我要用暑假的晚上和周末的空余时间做个安卓版的出来,哥就不信了。


话说回来12306.cn的登录系统用的是另一套验证码系统,这个验证码应该更好破解,网上都有好多源码(貌似),这样就完全可以开发个机器刷票软件嘛,是不是有点邪恶了,太不和谐了。


这些都是预想,刷票功能肯定会开发的,但是只是用来实验和学习使用,不会真正投入使用,貌似扯远了。


总之搞这些玩意,只有一个目的,学习Java,自学安卓开发,争取做个能用的安卓软件出来,将来能找个比较不错的工作。


后记:

12306.cn的网站访问真是慢啊,有两次实验既然直接卡死了,囧,这破系统也就铁道部能开发出来了,鄙视tdb,鄙视gcd,花人民的钱,不为百姓着想。

你可能感兴趣的:(java,工作,python,正则表达式,Google,破解)