nodejs破解12306心得

来源:互联网 发布:mysql qps 编辑:程序博客网 时间:2024/05/21 05:07

1.利用nodejs写脚本程序模拟请求12306获取图片验证码.

2.把图片放大 剪切成9个图  1标题 + 8个实物图.

3.根据文字识别  把标题转为汉字,nodejs 中可用安装相应的插件 .

4.智能识别(以图搜图)  识别12306验证码实物图中 到底是什么东东,  通过百度识图api 20%-30%准确性 速度很慢大概10-20秒完成(已检验),google识图 听说准确率在85% 访问google还需翻墙,  

5,完成以上步骤 ,就可以根据标题写代码只能识别答案的位置 , 并且算好坐标,  然后模拟请求12306登陆接口,成功后12306会返回set-cookie 这时候你需要保存这个身份认证,并且在后续的http请求中带入这个身份.

6. 其他刷票步骤 ui  都可以根据12306ui及api自行完成功能设计  (这个已经算完成了逻辑步骤)

为什么使用nodejs   本人学C#的.HtmlAgilityPack 分析html没有nodejs方便 .   用nodejs 基本是脚本代码 写起来也很方便 ., 然后把他做成api服务 调用这个api即可, 其他的ui上的东西可以写成C# winform程序  也可以写成web   或 最近出来的微信小程序

重点,  google需要代理ip才能调用  提升识别率, 用户使用这个软件  也需要代理ip   软件获取用户位置 - 匹配相应地区可以的代理ip进行刷票

为什么要这样做.?

应为12306可能有防刷机制  用户通过你软件刷票.  都是通过你的服务器与12306交互.  如果没有代理ip 容易造成ip禁用 或用户封号.

如何获取高可用ip地址,

1.通过nodejs爬虫 爬各大提供免费代理ip的网站来获取大量ip  

2.保存这些地址道数据库中,

3.验证这些地址可用性 , 没有的可以清理掉或设置状态.

国外的代理比较慢 google能访问的是港澳台地区的代理. 可以写个任务计划每天定时去更新代理ip, 可用在开个服务检测可用ip数量  不足立即启用刷代理ip程序

然后12306的破解服务就可以使用数据库中这些可用ip. 如果请求出现超时或中断  请更换一个ip,并且把当前失效.

这个就已经算比较晚上的破解12306程序了,

重点优化的核心内容:

提高破解验证码的时间及识别率,提高识别率就需要用到以图搜图功能,还是的有12306的图集数据及录入对应的文字 , 12306吧图片基本模糊化处理,如果不录入原图,智能识别中的数据挖掘 挖掘不到这种模糊图片是正常的 .  不说了. 自己动手吧

想要nodejs代码 +275867689

0 0