执行js的三种方法
1、阅读js代码,将之转成python
2、找到js代码,用python第三方库执行相关代码 python2-pyv8 python3-pyexecjs
3、用selenium驱动浏览器

pyexecjs
pip install pyexecjs
使用:

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','','')) #调用 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文件,每次打开在<audio>标签中播放,但是在源代码中,找不到mp3文件的链接。

每次切换歌曲,<audio>标签中的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文件:

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

python3执行js之pyexecjs的更多相关文章

  1. 17-Python执行JS代码--PyExecJS、PyV8、Js2Py

    一.Python执行JS代码--PyExecJS.PyV8.Js2Py 1.1.PyExecJS PyExecJS的优点是您不需要照顾JavaScript环境.特别是,它可以在Windows环境中运行 ...

  2. 爬虫必备:Python 执行 JS 代码 —— PyExecJS、PyV8、Js2Py

    在使用爬虫中,经常会遇到网页请求数据是经过 JS 处理的,特别是模拟登录时可能有加密请求.而目前绝大部分前端 JS 代码都是经过混淆的,可读性极低,想理解代码逻辑需要花费大量时间.这时不要着急使用 S ...

  3. Python执行js之PyexecJs

    利用Python执行js 爬虫中会经常碰到JS加密,当我们找到他加密的JS代码之后我们需要获取它的返回值,python虽然可以模仿js写一个python版本的加密,但是这样有点费时间,也有点费头发~ ...

  4. Python3 执行JS出现JSON未定义问题

    two = function(e) { var t = e.data; e.url.match(/(https?:)?(\/\/)([^/]*)/) || (e.url = "https:/ ...

  5. Python利用PyExecJS库执行JS函数

      在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能Login成功的.针对这个问题,现在有 ...

  6. Python执行JS -- PyExecJS库

    pip install PyExecJS 查看执行JS的环境 print(execjs.get().name) 返回值:JScript windows 默认执行JS的环境 返回值:Node.js (V ...

  7. python3调用js的库之execjs

    执行JS的类库:execjs,PyV8,selenium,node execjs是一个比较好用且容易上手的类库(支持py2,与py3),支持 JS runtime. 1.安装: pip install ...

  8. Javascript动态执行JS(new Function与eval比较)

    new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接 ...

  9. Sublime Text执行js

    Sublime Text执行js 在Build Sytem添加以下内容: { "cmd": ["node", "$file"], " ...

随机推荐

  1. LeetCode 笔记系列二 Container With Most Water

    题目:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai ...

  2. ie8兼容:对象不支持“trim”属性或方法

    trim() 方法是原生js中去空格的方法,高版本浏览器已经默认支持trim() 方法,但ie8以下不支持,会报错:对象不支持“trim”属性或方法 解决这个的兼容,只需要扩展String原型属性 在 ...

  3. dreamweaver中Dw设置svn进行版本控制

    需要工具: VisualSVN dwcs5+ 点击查看教程

  4. Servlet------>jsp自定义标签3(不显示余下jsp内容)

    2.自定义标签控制,jsp页面余下标签是否继续执行 EndTag.java package tag; import javax.servlet.jsp.JspException; import jav ...

  5. Exchange Database Status(Copy Status ,Content Index State,QueueLength,Move Status...)

    Copy Status Description Mounted The active copy is online and accepting client connections. Only the ...

  6. 2017 Multi-University Training Contest - Team 1—HDU6035

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035 题意:一棵树有n个点,每个点有自己的颜色,任意两个不同的点可以组成一条路径.也就是说一共有n(n ...

  7. Load Balancing with NGINX 负载均衡算法

    Using nginx as HTTP load balancer Using nginx as HTTP load balancer http://nginx.org/en/docs/http/lo ...

  8. 转:java高并发学习记录-死锁,活锁,饥饿

    死锁 两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 为什么会产生死锁: ① 因为系统资源不足. ② 进程运行推进的顺序不合适.    ③ ...

  9. Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2

    环境:centos7.1 docker run -t -i centos /bin/bash 运行上面的命令开启容器时报错: /usr/bin/docker-current: Error respon ...

  10. Python的一些教程(转)

    原文:http://blog.chinaunix.net/uid-26200547-id-3418038.html Python 安装配置及基本语法篇 Python 语言速成 Python 基本知识  ...