12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
郑重声明: 本文仅供学习使用,禁止用于非法用途,否则后果自负,如有侵权,烦请告知删除,谢谢合作! 开篇明义 本文针对 自主开发 的 抢票 脚本在抢票过程中常常遇到的 请求无效 等问题,简单分析了 12306 网站的前端加密算法,更准确的说,是探究 RAIL_DEVICEID 的生成过程. 因为该 cookie 值是抢票请求的 核心基础 ,没有它将无法正确发送请求,或者一段时间后就会到期失效需要重新获取,或者明明更改了浏览器用户代理(navigator.userAgent)标识却还是被限制访问... 因为它并不是真正的客户端标识,只是迷惑性战术,浏览器唯一标识其实是 RAIL_OkLJUJ 而它却被 12306 网站设计者 故意没有添加到 cookie ,因此造成了很强的欺骗性,编程真的是一门艺术! 你以为你的爬虫已经可以正常模仿浏览器,殊不知,只要没搞懂谁才是真正的浏览器标识,那么再怎么换马甲也 难逃造假事实 . 上图展示了 RAIL_OkLJUJ 的存在位置,可能是为了 兼容市面上绝大数浏览器 ,也可能是为了 联合各种前端缓存技术作为特征码 ,总是除了 cookie 之外, RAIL_OkLJUJ 存在于 Local Storage , Session Storage , IndexedDB 和 Web SQL 等. 值得注意的是,cookie 中 故意没有设置 RAIL