股市数据采集js逆向解决hexin-v cookie 解决失效后自动更新复刻核心算法

本次记录扣js核心算法 

爬取思路:

1.找到请求体,获得数据链接

2.将请求体带上尝试请求,研究请求情况(一段时间cookie会失效)

3.尝试请求体情况,得到问题所在

4.开始逆向hook需要的核心请求体

5.不断调试与扣js代码

6.得到数据后,构思如何失效后自动更新

找到请求体:

 数据在里面多层嵌套最终在data就能看见内容

请求链接:Request URL:http://www.iwencai.com/customized/chart/get-robot-data

尝试请求:

将data和headers带上:


data = {
    "question":"20221030涨停",
    "perpage":50,
    "page":1,
    "secondary_intent":"",
    "log_info":{"input_type":"typewrite"},
    "source":"Ths_iwencai_Xuangu",
    "version":"2.0",
    "query_area":"",
    "block_list":"",
    "add_info":{
        "urp":{
            "scene":1,
            "company":1,
            "business":1
        },

        "contentType":"json",
        "searchInfo":True
    },
    "rsh":"Ths_iwencai_Xuangu_xdoaiz62bgbofsagvw5mfuwnxmdl7mto",
}


headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
    "Content-Type": "application/json",
    "Referer": "http://www.iwencai.com/unifiedwap/result?w=20221030%E6%B6%A8%E5%81%9C",
    "cookie": f"v={hexin_v}",
}


resp = requests.post(url=url,data=json.dumps(data),headers=headers).text
print(resp)

尝试请求体情况,得到问题所在:

仔细研究cookie,再加上测试,发现cookie中可以减少参数,最终只剩下v=即可

然后,v后面的数据又是hexin-v一模一样,由此可以断定是拼接上去从而检测的,再测试还发现不带cookie带heixn-v一样可以请求,由此即可明白请求原理,要解决就是heixn-v

逆向hook需要的核心请求体:

这里就运用到了hook请求头,当发现hexin-v时候捕获:

func_ = window.XMLHttpRequest.prototype.setRequestHeader;

window.XMLHttpRequest.prototype.setRequestHeader = function(name,value){
    if (name === "hexin-v"){
        debugger
    }
    return func_.apply(this,[name,value]);
}

//将代码复制到浏览器,接着再次点击请求

找到核心算法实现处:

上一层就是实现处原理:

接着从代码中获知rt.update就是hexin-v的来源验证一下

将生成的放入请求中,请求成功获取

接着定位到核心rt处,进行扣代码!!!(耐心出奇迹)

代码:

//var TOKEN_SERVER_TIME = 1667085000.423;
var document = {}
var window = {}
second = [1, "", 0, "he", "ad", 29, "\x180G\x1f", "?>=<;:\\\\/,+", "ng", "to", "ff", Number, Error, "11", "6", "er", "ro", "code", "co", "_?L", "ed", "@S\x15D*", Object, "len", "gth", "on", "lo", RegExp, "ySta", 13, "eel", "ee", "ouse", "ll", "\u2544\u2530\u2555\u2531", "FCm-", "isTru", "getC", "Pos", "ve", "or", "ae", "^", "On", "Sho", "can", "ont", "roid", "anguage", "\u2502", "ta", "tna", Date, "3", "am", "e", "n+", "f80", "\x1dD", 6, "\u255f\u253a\u2542\u252b\u2545\u2568\u251e", "KCABLLAC_NOELEMAHC", "X-Antispider-Message", 3, ".baidu.", Function, document, !0, "cookie", "; ", "=", 96, "\u255b\u253e\u2550\u2537\u2543\u252b", "\u250c\u252c\u255c\u253d\u2549\u2521\u251c", ";O", "; expires=", "getCookie", "Thu, 01 Jan 1970 00:00:00 GMT", "setCookie", "Z\x18|", "i", "\u255b\u2534\u2557\u2536\u255a\u2509\u257d\u2512\u2560\u2501\u2566\u2503", 52, window, 10, "Init", !1, "set", "v", "eliflmth", '<script>document.w=window<\/script><iframe src="/favicon.icon"></iframe>', "iS.p", "head", "#default#userData", "get", "[!\"#$%&'()*", "g", "^d", "$D", "\u2568\u2537\u2568\u254c\u256a", "]\\P", "___", "le", "th", "prototype", "base_f", 8, "\\R5Z\\R\x14@^Q3G", "ZV%PgQ?Y]S
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hares_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值