import requests
import time
from urllib import parse
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
import execjs
c= "4bTogwpz7RzNO2VTFtW7zcfRkAE97ox6ZSgcQi7FgYdqrHqKB7aGqEZ4o7yssa2aEXoV3bQwh12FFgVNlpyYk2Yjm9d2EZGeGu3"
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Referer':
'https://www.dxy.cn/bbs/newweb/pc/board/151'
}
def get_server_time():
params = {
'serverTimestamp': '0',
'timestamp': str(int(time.time()*1000)),
'noncestr': '35623289'}
url_encode = parse.urlencode(params)
request_data = c+"&"+url_encode
with open("dxy.js", "r", encoding='utf-8') as f:
data = f.read()
js = execjs.compile(data)
res = js.call("sign", request_data)
url = 'https://www.dxy.cn/bbs/newweb/sys/time-millis/info'
params['sign'] = res
response = requests.get(url, params=params,headers=headers)
return response.json().get('data')
server_time = get_server_time()
a = int(time.time()*1000)
l = server_time-a
new_time = a + l
params = {
'boardId': '151',
'noncestr': '91645390',
'orderType': '2',
'pageNum': '3',
'pageSize': '30',
'postType': '0',
'serverTimestamp': server_time,
'showType': '0',
'timestamp': new_time,
}
url_encode = parse.urlencode(params)
request_data = "appSignKey="+c + "&" + url_encode
with open("dxy.js", "r", encoding='utf-8') as f:
data = f.read()
js = execjs.compile(data)
res = js.call("sign", request_data)
params['sign'] = res
url = 'https://www.dxy.cn/bbs/newweb/board/post/page'
response = requests.get(url,params=params,headers=headers)
print(response.text)
function n(e, t) {
return t = {
exports: {}
},
e(t, t.exports),
t.exports
}
var o = n((function(e) {
(function() {
var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
, n = {
rotl: function(e, t) {
return e << t | e >>> 32 - t
},
rotr: function(e, t) {
return e << 32 - t | e >>> t
},
endian: function(e) {
if (e.constructor == Number)
return 16711935 & n.rotl(e, 8) | 4278255360 & n.rotl(e, 24);
for (var t = 0; t < e.length; t++)
e[t] = n.endian(e[t]);
return e
},
randomBytes: function(e) {
for (var t = []; e > 0; e--)
t.push(Math.floor(256 * Math.random()));
return t
},
bytesToWords: function(e) {
for (var t = [], n = 0, r = 0; n < e.length; n++,
r += 8)
t[r >>> 5] |= e[n] << 24 - r % 32;
return t
},
wordsToBytes: function(e) {
for (var t = [], n = 0; n < 32 * e.length; n += 8)
t.push(e[n >>> 5] >>> 24 - n % 32 & 255);
return t
},
bytesToHex: function(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push((e[n] >>> 4).toString(16)),
t.push((15 & e[n]).toString(16));
return t.join("")
},
hexToBytes: function(e) {
for (var t = [], n = 0; n < e.length; n += 2)
t.push(parseInt(e.substr(n, 2), 16));
return t
},
bytesToBase64: function(e) {
for (var n = [], r = 0; r < e.length; r += 3)
for (var o = e[r] << 16 | e[r + 1] << 8 | e[r + 2], i = 0; i < 4; i++)
8 * r + 6 * i <= 8 * e.length ? n.push(t.charAt(o >>> 6 * (3 - i) & 63)) : n.push("=");
return n.join("")
},
base64ToBytes: function(e) {
e = e.replace(/[^A-Z0-9+\/]/gi, "");
for (var n = [], r = 0, o = 0; r < e.length; o = ++r % 4)
0 != o && n.push((t.indexOf(e.charAt(r - 1)) & Math.pow(2, -2 * o + 8) - 1) << 2 * o | t.indexOf(e.charAt(r)) >>> 6 - 2 * o);
return n
}
};
e.exports = n
}
)()
}
))
, i = {
utf8: {
stringToBytes: function(e) {
return i.bin.stringToBytes(unescape(encodeURIComponent(e)))
},
bytesToString: function(e) {
return decodeURIComponent(escape(i.bin.bytesToString(e)))
}
},
bin: {
stringToBytes: function(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push(255 & e.charCodeAt(n));
return t
},
bytesToString: function(e) {
for (var t = [], n = 0; n < e.length; n++)
t.push(String.fromCharCode(e[n]));
return t.join("")
}
}
}
, a = i
, s = n((function(e) {
(function() {
var t = o
, n = a.utf8
, i = a.bin
, s = function(e) {
e.constructor == String ? e = n.stringToBytes(e) : "undefined" !== typeof r && "function" == typeof r.isBuffer && r.isBuffer(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || (e = e.toString());
var o = t.bytesToWords(e)
, i = 8 * e.length
, a = []
, s = 1732584193
, u = -271733879
, c = -1732584194
, l = 271733878
, f = -1009589776;
o[i >> 5] |= 128 << 24 - i % 32,
o[15 + (i + 64 >>> 9 << 4)] = i;
for (var d = 0; d < o.length; d += 16) {
for (var p = s, h = u, v = c, y = l, g = f, m = 0; m < 80; m++) {
if (m < 16)
a[m] = o[d + m];
else {
var b = a[m - 3] ^ a[m - 8] ^ a[m - 14] ^ a[m - 16];
a[m] = b << 1 | b >>> 31
}
var _ = (s << 5 | s >>> 27) + f + (a[m] >>> 0) + (m < 20 ? 1518500249 + (u & c | ~u & l) : m < 40 ? 1859775393 + (u ^ c ^ l) : m < 60 ? (u & c | u & l | c & l) - 1894007588 : (u ^ c ^ l) - 899497514);
f = l,
l = c,
c = u << 30 | u >>> 2,
u = s,
s = _
}
s += p,
u += h,
c += v,
l += y,
f += g
}
return [s, u, c, l, f]
}
, u = function(e, n) {
var r = t.wordsToBytes(s(e));
return n && n.asBytes ? r : n && n.asString ? i.bytesToString(r) : t.bytesToHex(r)
};
u._blocksize = 16,
u._digestsize = 20,
e.exports = u
}
)()
}
));
function sign(e){
return s(e)
}