这是什么编码

What is this encoding

检查此 url: http://m.livescore.com/~~/app1-category/soccer/germany?tz=1&tzout=1

这应该是 json 供稿。 可能编码为 gzip,开头带有时间戳。

HTTP/1.1 200 OK Date: Wed, 08 Mar 2017 10:53:32 GMT Content-Type: text/plain Cache-Control: max-age=5 Pragma: cache Content-Encoding: gzip Expires: Wed, 08 Mar 2017 10:53:37 GMT Last-Modified: Wed, 08 Mar 2017 10:53:32 GMT Vary: Accept-Encoding Content-Disposition: filename=germany.JSON Server: origin X-Cached: HIT content-length: 7277

内容看起来像:

Query-Expiry::: 2017-03-08 11:27:40Q0Ydk"KGF("Vdl"L=*"X\d"P=,"Z^__d"HM,"Z"EIm%#$K=GK("d"HH,"Z"EI6M?IMJ"f"7?."\b__f"\@D-"[g"FGJ>t"["OC5@N@x"i"CCn""SG9DH:;"m">=~"Y]e"4HIs"Z^f"+P

我尝试使用 gzip,但它抱怨说它不是 gzip。 我只是想知道有人熟悉这种格式并告诉我它是什么以及它是如何在 javascript.

中使用的

您需要从 here 中提取 javascript 函数 lsMobile.fn.charToInt, lsMobile.fn.fDk, lsMobile.fn.fDdCheckCharEx, lsMobile.fn.fDd,然后使用任何 javascript 引擎计算 json = lsMobile.fn.fDd(obfuscated, 1)

结果 json 将类似于 {"Stages":[{"Pid":1,"Events":[{"T1":[{"ID":8406,"Kn":1,"Gd":1,"Nm":"Augsburg"}],...

当然,函数名称和混淆方法可能会随机更改,只要服务器端重新运行他们使用的任何混淆器。

另一种对混淆算法的变化更稳健的方法可能是在虚拟 DOM 中呈现他们的站点并从那里抓取内容。