币圈的同学应该都听说过MyToken,其中最有价值的就是他的热搜榜。与其每天盯盘炒币,不如写一个脚本抓取它热搜榜数据。
阅读流程
- 效果图
- 项目地址
- 反爬知识点
- js重写
- 思考问题
效果图
项目地址
反爬知识点
- MyToken的反爬比较简单,其对ts进行了一系列操作,然后生成一个code值。请求的时候携带上ts和code即可。
- 项目代码和js重写的时候都会详细说明。
js重写
- 通过debug,发现了一系列函数。并把这些函数封装到了一个工具类中。代码如下。
var utils = {
stringToBytes: function (t) {
for (var e = [], n = 0; n < t.length; n++)
e.push(255 & t.charCodeAt(n));
return e
},
bytesToWords: function (t) {
for (var e = [], n = 0, r = 0; n < t.length; n++,
r += 8)
e[r >>> 5] |= t[n] << 24 - r % 32;
return e
},
rotl: function (t, e) {
return t << e | t >>> 32 - e
},
endian: function (t) {
if (t.constructor == Number)
return 16711935 & utils.rotl(t, 8) | 4278255360 & utils.rotl(t, 24);
for (var e =