概述
执行js的三种方法:
1、阅读js代码,将之转成python
2、找到js代码,用python第三方库执行相关代码 python2-pyv8 python3-pyexecjs
3、用selenium驱动浏览器
pyexecjs
pip install pyexecjs
使用:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import execjs
e = execjs.eval('a = new Array(1,2,3)')#获取js环境,直接执行js代码,适用于较简单的运算
c = execjs.compile('''
function add(x,y){
return x+y;
};
''') #加载js代码,使之应用到当前环境
print(e) #[1,2,3]
print(c)# <execjs._external_runtime.ExternalRuntime.Context object at 0x000001B84A8AD780> 加载这个函数到环境
print(c.call('add','1','2')) #调用 add函数,参数为'1'和'2'
如果使用python执行js代码,注意不能出现和页面有交互的代码
执行js文件
with open ('1.js',encoding='utf-8') as f:
js_data = f.read()
c = execjs.compile(js_data)
code = "add('{}','{}')".format(x,y) #add是文件中的某个函数,x y是传入的参数
c.eval(code)
案例:爬取落网单曲
分析:
落网单曲中的歌曲是个MP3文件,每次打开在标签中播放,但是在源代码中,找不到mp3文件的链接。
每次切换歌曲,标签中的src会变化,指向不同的地址。所以我们猜测歌曲的src是由JS生成,而且每次切歌,都会触发JS事件得到新的src。我们在audio标签打上一个断点
每当src变化时就会暂停,我们可以进而查看JS。
我们知道切歌时执行的是什么代码了,现在要得到所有的歌曲链接,我们可以在右边的调用栈里逐条分析。一般jq文件不需要关心。
经过分析,我们大概知道:每次切歌,代码会把当前需要播放的歌曲的编号传给一个函数。函数接收到编号之后,就在播放列表里播放相应歌曲。所以我们的目的是得到播放列表。
像上面这样,里面由所有歌曲信息,但是调用它的是this对象,this在js里面相当于python中的self,一般用于函数里面当作对象本身。也就是说,谁触发这个函数就是谁,并没有直接定义,所以这种也不能算找到生成列表的JS代码。
像这样luooPlayer.playlist里面有所有歌曲信息,我们就知道,歌曲信息是存在luooPlayer对象中的playlist属性里,我们就在这个JS文件中搜索luooPlayer对象
我们发现playlist定义在luooPlayer对象之前,并且作为一个参数传进来而生成luooPlayer对象,所以我们接着搜索playlist的定义,发现就在前几行。
var playlist = GibberishAES.dec(pl, $.luoo.cfg.aes))
pl和$.luoo.cfg.aes的值在源文件中可以搜到是一串固定的字符串,我们直接调用这个函数,然后把这两个参数传进去即可。现在我们的难题是得到这个函数,这个时候,我们可以在这个定义playlist的地方打上一个断点,然后用单步进入的方式,得到函数代码!
复制出JS代码,然后逐步分析,若有调用其他函数和变量,就单步进入或搜索,直至这个N函数能正常执行。
代码:
import execjs
import json
pl = "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"
aes = 'b6ce159334e155d8'
with open ('luowang.js',encoding='utf-8') as f:
code = f.read()
ctx = execjs.compile(code)
c = "N('{}','{}')".format(pl,aes)
data = json.loads(ctx.eval(c))
for i in data:
print(i['mp3'])
luowang.js文件:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
var N = function(a, b, c) {
var d = decode(a)
, e = d.slice(8, 16)
, f = m(j(b, c), e)
, g = f.key
, h = f.iv;
d = d.slice(16, d.length),
a = o(d, g, h, c)
return d,a
};
decode = function(b) {
var a ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var c, d = [], e = [], f = [];
for (c = 0; b.length > c; c += 4)
e[0] = a.indexOf(b.charAt(c)),
e[1] = a.indexOf(b.charAt(c + 1)),
e[2] = a.indexOf(b.charAt(c + 2)),
e[3] = a.indexOf(b.charAt(c + 3)),
f[0] = e[0] << 2 | e[1] >> 4,
f[1] = (15 & e[1]) << 4 | e[2] >> 2,
f[2] = (3 & e[2]) << 6 | e[3],
d.push(f[0], f[1], f[2]);
d = d.slice(0, d.length - d.length % 16)
return d
};
var j = function(a, b) {
var c, e = [];
for (b || (a = d(a)),
c = 0; a.length > c; c++)
e[c] = a.charCodeAt(c);
return e
};
var d = function(a) {
try {
return unescape(encodeURIComponent(a))
} catch (b) {
throw "Error on UTF-8 encode"
}
};
var e = function(a) {
try {
return decodeURIComponent(escape(a))
} catch (b) {
throw "Bad Key"
}
};
var m = function(c, d) {
var a = 14, b = 8;
var e, f = a >= 12 ? 3 : 2, g = [], h = [], i = [], j = [], k = c.concat(d);
for (i[0] = O(k),
j = i[0],
e = 1; f > e; e++)
i[e] = O(i[e - 1].concat(k)),
j = j.concat(i[e]);
return g = j.slice(0, 4 * b),
h = j.slice(4 * b, 4 * b + 16),
{
key: g,
iv: h
}
};
var O = function(a) {
function b(a, b) {
return a << b | a >>> 32 - b
}
function c(a, b) {
var c, d, e, f, g;
return e = 2147483648 & a,
f = 2147483648 & b,
c = 1073741824 & a,
d = 1073741824 & b,
g = (1073741823 & a) + (1073741823 & b),
c & d ? 2147483648 ^ g ^ e ^ f : c | d ? 1073741824 & g ? 3221225472 ^ g ^ e ^ f : 1073741824 ^ g ^ e ^ f : g ^ e ^ f
}
function d(a, b, c) {
return a & b | ~a & c
}
function e(a, b, c) {
return a & c | b & ~c
}
function f(a, b, c) {
return a ^ b ^ c
}
function g(a, b, c) {
return b ^ (a | ~c)
}
function h(a, e, f, g, h, i, j) {
return a = c(a, c(c(d(e, f, g), h), j)),
c(b(a, i), e)
}
function i(a, d, f, g, h, i, j) {
return a = c(a, c(c(e(d, f, g), h), j)),
c(b(a, i), d)
}
function j(a, d, e, g, h, i, j) {
return a = c(a, c(c(f(d, e, g), h), j)),
c(b(a, i), d)
}
function k(a, d, e, f, h, i, j) {
return a = c(a, c(c(g(d, e, f), h), j)),
c(b(a, i), d)
}
function l(a) {
for (var b, c = a.length, d = c + 8, e = (d - d % 64) / 64, f = 16 * (e + 1), g = [], h = 0, i = 0; c > i; )
b = (i - i % 4) / 4,
h = 8 * (i % 4),
g[b] = g[b] | a[i] << h,
i++;
return b = (i - i % 4) / 4,
h = 8 * (i % 4),
g[b] = g[b] | 128 << h,
g[f - 2] = c << 3,
g[f - 1] = c >>> 29,
g
}
function m(a) {
var b, c, d = [];
for (c = 0; 3 >= c; c++)
b = 255 & a >>> 8 * c,
d = d.concat(b);
return d
}
var n, o, p, q, r, s, t, u, v, w = [], x = z("67452301efcdab8998badcfe10325476d76aa478e8c7b756242070dbc1bdceeef57c0faf4787c62aa8304613fd469501698098d88b44f7afffff5bb1895cd7be6b901122fd987193a679438e49b40821f61e2562c040b340265e5a51e9b6c7aad62f105d02441453d8a1e681e7d3fbc821e1cde6c33707d6f4d50d87455a14eda9e3e905fcefa3f8676f02d98d2a4c8afffa39428771f6816d9d6122fde5380ca4beea444bdecfa9f6bb4b60bebfbc70289b7ec6eaa127fad4ef308504881d05d9d4d039e6db99e51fa27cf8c4ac5665f4292244432aff97ab9423a7fc93a039655b59c38f0ccc92ffeff47d85845dd16fa87e4ffe2ce6e0a30143144e0811a1f7537e82bd3af2352ad7d2bbeb86d391", 8);
for (w = l(a),
s = x[0],
t = x[1],
u = x[2],
v = x[3],
n = 0; w.length > n; n += 16)
o = s,
p = t,
q = u,
r = v,
s = h(s, t, u, v, w[n + 0], 7, x[4]),
v = h(v, s, t, u, w[n + 1], 12, x[5]),
u = h(u, v, s, t, w[n + 2], 17, x[6]),
t = h(t, u, v, s, w[n + 3], 22, x[7]),
s = h(s, t, u, v, w[n + 4], 7, x[8]),
v = h(v, s, t, u, w[n + 5], 12, x[9]),
u = h(u, v, s, t, w[n + 6], 17, x[10]),
t = h(t, u, v, s, w[n + 7], 22, x[11]),
s = h(s, t, u, v, w[n + 8], 7, x[12]),
v = h(v, s, t, u, w[n + 9], 12, x[13]),
u = h(u, v, s, t, w[n + 10], 17, x[14]),
t = h(t, u, v, s, w[n + 11], 22, x[15]),
s = h(s, t, u, v, w[n + 12], 7, x[16]),
v = h(v, s, t, u, w[n + 13], 12, x[17]),
u = h(u, v, s, t, w[n + 14], 17, x[18]),
t = h(t, u, v, s, w[n + 15], 22, x[19]),
s = i(s, t, u, v, w[n + 1], 5, x[20]),
v = i(v, s, t, u, w[n + 6], 9, x[21]),
u = i(u, v, s, t, w[n + 11], 14, x[22]),
t = i(t, u, v, s, w[n + 0], 20, x[23]),
s = i(s, t, u, v, w[n + 5], 5, x[24]),
v = i(v, s, t, u, w[n + 10], 9, x[25]),
u = i(u, v, s, t, w[n + 15], 14, x[26]),
t = i(t, u, v, s, w[n + 4], 20, x[27]),
s = i(s, t, u, v, w[n + 9], 5, x[28]),
v = i(v, s, t, u, w[n + 14], 9, x[29]),
u = i(u, v, s, t, w[n + 3], 14, x[30]),
t = i(t, u, v, s, w[n + 8], 20, x[31]),
s = i(s, t, u, v, w[n + 13], 5, x[32]),
v = i(v, s, t, u, w[n + 2], 9, x[33]),
u = i(u, v, s, t, w[n + 7], 14, x[34]),
t = i(t, u, v, s, w[n + 12], 20, x[35]),
s = j(s, t, u, v, w[n + 5], 4, x[36]),
v = j(v, s, t, u, w[n + 8], 11, x[37]),
u = j(u, v, s, t, w[n + 11], 16, x[38]),
t = j(t, u, v, s, w[n + 14], 23, x[39]),
s = j(s, t, u, v, w[n + 1], 4, x[40]),
v = j(v, s, t, u, w[n + 4], 11, x[41]),
u = j(u, v, s, t, w[n + 7], 16, x[42]),
t = j(t, u, v, s, w[n + 10], 23, x[43]),
s = j(s, t, u, v, w[n + 13], 4, x[44]),
v = j(v, s, t, u, w[n + 0], 11, x[45]),
u = j(u, v, s, t, w[n + 3], 16, x[46]),
t = j(t, u, v, s, w[n + 6], 23, x[47]),
s = j(s, t, u, v, w[n + 9], 4, x[48]),
v = j(v, s, t, u, w[n + 12], 11, x[49]),
u = j(u, v, s, t, w[n + 15], 16, x[50]),
t = j(t, u, v, s, w[n + 2], 23, x[51]),
s = k(s, t, u, v, w[n + 0], 6, x[52]),
v = k(v, s, t, u, w[n + 7], 10, x[53]),
u = k(u, v, s, t, w[n + 14], 15, x[54]),
t = k(t, u, v, s, w[n + 5], 21, x[55]),
s = k(s, t, u, v, w[n + 12], 6, x[56]),
v = k(v, s, t, u, w[n + 3], 10, x[57]),
u = k(u, v, s, t, w[n + 10], 15, x[58]),
t = k(t, u, v, s, w[n + 1], 21, x[59]),
s = k(s, t, u, v, w[n + 8], 6, x[60]),
v = k(v, s, t, u, w[n + 15], 10, x[61]),
u = k(u, v, s, t, w[n + 6], 15, x[62]),
t = k(t, u, v, s, w[n + 13], 21, x[63]),
s = k(s, t, u, v, w[n + 4], 6, x[64]),
v = k(v, s, t, u, w[n + 11], 10, x[65]),
u = k(u, v, s, t, w[n + 2], 15, x[66]),
t = k(t, u, v, s, w[n + 9], 21, x[67]),
s = c(s, o),
t = c(t, p),
u = c(u, q),
v = c(v, r);
return m(s).concat(m(t), m(u), m(v))
};
var x = function(a) {
for (var b = 0; 4 > b; b++)
a[b] = D[a[b]];
return a
};
var y = function(a) {
var b, c = a[0];
for (b = 0; 4 > b; b++)
a[b] = a[b + 1];
return a[3] = c,
a
};
var z = function(a, b) {
var c, d = [];
for (c = 0; a.length > c; c += b)
d[c / b] = parseInt(a.substr(c, b), 16);
return d
};
var F = z("01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591", 2);
var D = z("637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16", 2);
var o = function(a, b, c, d) {
b = w(b);
var f, h = a.length / 16, i = [], j = [], k = "";
for (f = 0; h > f; f++)
i.push(a.slice(16 * f, 16 * (f + 1)));
for (f = i.length - 1; f >= 0; f--)
j[f] = q(i[f], b),
j[f] = 0 === f ? v(j[f], c) : v(j[f], i[f - 1]);
for (f = 0; h - 1 > f; f++)
k += g(j[f]);
return k += g(j[f], !0),
d ? k : e(k)
};
var v = function(a, b) {
var c, d = [];
for (c = 0; 16 > c; c++)
d[c] = a[c] ^ b[c];
return d
};
var w = function(c) {
var a = 14, b = 8;
var d, e, f, g, h = [], i = [], j = [];
for (d = 0; b > d; d++)
e = [c[4 * d], c[4 * d + 1], c[4 * d + 2], c[4 * d + 3]],
h[d] = e;
for (d = b; 4 * (a + 1) > d; d++) {
for (h[d] = [],
f = 0; 4 > f; f++)
i[f] = h[d - 1][f];
for (0 === d % b ? (i = x(y(i)),
i[0] ^= F[d / b - 1]) : b > 6 && 4 === d % b && (i = x(i)),
f = 0; 4 > f; f++)
h[d][f] = h[d - b][f] ^ i[f]
}
for (d = 0; a + 1 > d; d++)
for (j[d] = [],
g = 0; 4 > g; g++)
j[d].push(h[4 * d + g][0], h[4 * d + g][1], h[4 * d + g][2], h[4 * d + g][3]);
return j
};
var c = !1;
var q = function(b, d) {
var a = 14;
c = !0;
var e, f = u(b, d, a);
for (e = a - 1; e > -1; e--)
f = s(f),
f = r(f),
f = u(f, d, e),
e > 0 && (f = t(f));
return f
},
u = function(a, b, c) {
var d, e = [];
for (d = 0; 16 > d; d++)
e[d] = a[d] ^ b[c][d];
return e
},
s = function(a) {
var b, d = [], e = c ? [0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3] : [0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11];
for (b = 0; 16 > b; b++)
d[b] = a[e[b]];
return d
},r = function(a) {
var b, d = c ? E : D, e = [];
for (b = 0; 16 > b; b++)
e[b] = d[a[b]];
return e
}, t = function(a) {
var b, d = [];
if (c)
for (b = 0; 4 > b; b++)
d[4 * b] = L[a[4 * b]] ^ J[a[1 + 4 * b]] ^ K[a[2 + 4 * b]] ^ I[a[3 + 4 * b]],
d[1 + 4 * b] = I[a[4 * b]] ^ L[a[1 + 4 * b]] ^ J[a[2 + 4 * b]] ^ K[a[3 + 4 * b]],
d[2 + 4 * b] = K[a[4 * b]] ^ I[a[1 + 4 * b]] ^ L[a[2 + 4 * b]] ^ J[a[3 + 4 * b]],
d[3 + 4 * b] = J[a[4 * b]] ^ K[a[1 + 4 * b]] ^ I[a[2 + 4 * b]] ^ L[a[3 + 4 * b]];
else
for (b = 0; 4 > b; b++)
d[4 * b] = G[a[4 * b]] ^ H[a[1 + 4 * b]] ^ a[2 + 4 * b] ^ a[3 + 4 * b],
d[1 + 4 * b] = a[4 * b] ^ G[a[1 + 4 * b]] ^ H[a[2 + 4 * b]] ^ a[3 + 4 * b],
d[2 + 4 * b] = a[4 * b] ^ a[1 + 4 * b] ^ G[a[2 + 4 * b]] ^ H[a[3 + 4 * b]],
d[3 + 4 * b] = H[a[4 * b]] ^ a[1 + 4 * b] ^ a[2 + 4 * b] ^ G[a[3 + 4 * b]];
return d
},g = function(a, b) {
var c, d, e = "";
if (b) {
if (c = a[15],
c > 16)
throw "Decryption error: Maybe bad key";
if (16 === c)
return "";
for (d = 0; 16 - c > d; d++)
e += String.fromCharCode(a[d])
} else
for (d = 0; 16 > d; d++)
e += String.fromCharCode(a[d]);
return e
};
var A = function(a) {
var b, c = [];
for (b = 0; a.length > b; b++)
c[a[b]] = b;
return c
};
var B = function(a, b) {
var c, d;
for (d = 0,
c = 0; 8 > c; c++)
d = 1 === (1 & b) ? d ^ a : d,
a = a > 127 ? 283 ^ a << 1 : a << 1,
b >>>= 1;
return d
};
var C = function(a) {
var b, c = [];
for (b = 0; 256 > b; b++)
c[b] = B(a, b);
return c
};
var E = A(D);
var G = C(2)
, H = C(3)
, I = C(9)
, J = C(11)
, K = C(13)
, L = C(14);
执行结果:
http://mp3-cdn2.luoo.net/low/chinese/20171129.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171127.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171124.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171123.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171122.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171121.mp3
http://mp3-cdn2.luoo.net/low/chinese/20171119.mp3
最后
以上就是冷傲黑米为你收集整理的python执行js之pyexecjs的全部内容,希望文章能够帮你解决python执行js之pyexecjs所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复