Power Query 网页数据解码

有的网站做了简单的数据加密,其实他的对应码就在返回的json数据里,需要我们自己把他翻译过来:

Power Query 网页数据解码

basiceps: "."

这里面的开头的就是被加密了的数值,编码在哪里呢?

Power Query 网页数据解码

仔细对照一下,是不是0-9的编码对照表。

翻译过来就是:0.04

其实我们就是需要自己编写一个解码器,逐个的把里面的数值翻译过来就好了。

数据准备:

JSON数据放到Power Query中就是一个记录:

Power Query 网页数据解码

我们分成两个部分:

密码本部分,就是这样的一个记录列表,

Power Query 网页数据解码

S= T[font][FontMapping]

加密过的数据:

Power Query 网页数据解码

也是一个记录列表,我们展开数据,就得到有明文和密文组成的数据:

Power Query 网页数据解码

编写解码器

我们找一个有代表性的数值:既有负号又有小数点的

-.

用这个字符串作为数据源,编写解码函数。这个数据有两个规律:

我们在解码处理的时候会用到这个两个规律。

第一步:把这个字符串拆分开,用分号做分隔符:函数Text.Split

Power Query 网页数据解码

=Text.Split("-.",";")

第二步:我们区分是否含有符号,做一个循环判断:

Power Query 网页数据解码

第三步:分别处理数字与带符号数字

S就是我们做好的密码本

数字,长度等于7的:

List.RemoveNulls(

List.Transform(S,(y)=>if x&";"=y[code] then Text.From(y[value]) else null))

x就是一个数字的编码,我们字符串拆分的时候把分号给弄没了,这个时候要比较就在加上一个分号,y[code]就是密码本里的密码,y[value]就是密码本中的明文,如果找到对应的数据就显示明文,没找到就null,最后用List.RemoveNulls清除null,这样的到的结果是一个值得列表。

带符号数字,长度不等于7的:

List.RemoveNulls(

List.Transform(S,(y)=>if Text.End(x,7)&";"=y[code] then Text.Start(x,1)&Text.From(y[value]) else null ))

从右侧取7位,加上分号与密码比较,如果匹配上了,就显示左侧的一位符号与明文,否则null,外层去除null。

运行后的效果:

Power Query 网页数据解码

第四步:组合

Power Query 网页数据解码

这样单个密码,就被翻译出来了

第五步:生成函数

Power Query 网页数据解码

可能有些看不清楚:

let

源 = (t,S) => Text.Combine(List.Union(List.Transform(Text.Split(t,";"),

(x)=>if Text.Length(x)=7

then (List.RemoveNulls(List.Transform(S,(y)=>if x&";"=y[code] then Text.From(y[value]) else null)))

else (List.RemoveNulls(List.Transform(S,(y)=>if Text.End(x,7)&";"=y[code] then Text.Start(x,1)&Text.From(y[value]) else null ))))))

in

我们这个解码器有两个参数:

我们只需要用t替换掉“-.”就可以了,S原来也是用的引用S,不用做修改。

当然这两个S的含义是不同的,自定义函数中的这个S就是一个参数,并没有实际值,密码本S是一个实际的列表。

因为我们在解码时,这个密码本也是随着网页内容变化的,所以参数化以后,可以逐行引用处理数据。

解码:

我们直接展开数据源,会得到一个表格:接着展开List得到多行的表格,提取记录中FontMapping就是对应的密码本:

Power Query 网页数据解码

我们添加一列:

Power Query 网页数据解码

能够正确的把密文翻译过来。

以上就是对有对照表的数据解码过程。

展开阅读全文

页面更新:2024-03-18

标签:数据   组合   分号   数据源   明文   解码器   字符串   数值   函数   符号   表格   参数   密码   数字   网页   列表   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top