豆瓣读书搜索页的 window.__DATA__ 的解密:https://www.jianshu.com/p/ac8b81950a73

豆瓣的 音乐搜索读书搜索,返回的网页源码都有  window.__DATA__ ,这是 js 加密 之后的数据

具体分析 参考 :https://www.jianshu.com/p/ac8b81950a73

根据 参考博客 修改 模块 的源码,修改之前需要备份下但是毕竟修改的是模块的源码,万一弄错了好改回来。敲代码最忌不懂、乱改还不保留,这样很招人烦的,尤其团队合作时。

这里使用两种方法可以在不修改模块源码的情况下正确执行

方法 1:  test_nodejs_1

需要安装 nodejs 环境

这个是通过  subprocess 执行 node 命令,来执行 js 代码文件,通过命令行传递需要的参数,但是一个问题,参数短的时候还可以,如果参数太长,会执行报错。可以把程序中的 keyword 注释的放开,然后看下执行结果。

方法 2 :test_nodejs_2 (这个貌似没有 方法 1 的问题,推荐使用这个

需要安装:pip install nodejs

python-nodejs 的 github地址:https://github.com/markfinger/python-nodejs

douban.py 源码:


import re
import os
import json
import requests
import subprocess
from nodejs.bindings import node_runcurrent_dir = os.path.dirname(os.path.realpath(__file__))keyword = '魏新雨 恋人心'
# keyword = '黑客帝国'
url = f'https://search.douban.com/music/subject_search?search_text={keyword}&cat=1003'
r = requests.get(url)
data = re.findall(r'window.__DATA__ = "(.*?)";', r.content.decode('utf-8'))[0]def test_nodejs_1():print(len(data))result = subprocess.check_output(f"node {current_dir}/main.js {data}", shell=True)data_dict = json.loads(result.decode('utf-8'))print(json.dumps(data_dict, indent=4, ensure_ascii=False))def test_nodejs_2():print(len(data))stderr, stdout = node_run(f"{current_dir}/main.js", data)data_dict = json.loads(stdout)print(json.dumps(data_dict, indent=4, ensure_ascii=False))if __name__ == '__main__':   # test_nodejs_1()test_nodejs_2()pass

main.js 源码:

参考:https://github.com/SergioJune/Spider-Crack-JS/tree/master/douban

// var r = "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";
var r = "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";var i = 16
var Q = 4096
var p = {start: 2,end: 7
}
var K = {}
K.read = function (t, e, r, n, o) {var i, a, s = 8 * o - n - 1,u = (1 << s) - 1,c = u >> 1,f = -7,l = r ? o - 1 : 0,h = r ? -1 : 1,p = t[e + l];for (l += h,i = p & (1 << -f) - 1,p >>= -f,f += s; f > 0; i = 256 * i + t[e + l],l += h,f -= 8);for (a = i & (1 << -f) - 1,i >>= -f,f += n; f > 0; a = 256 * a + t[e + l],l += h,f -= 8);if (0 === i)i = 1 - c;else {if (i === u)return a ? NaN : 1 / 0 * (p ? -1 : 1);a += Math.pow(2, n),i -= c}return (p ? -1 : 1) * a * Math.pow(2, i - n)
}K.write = function (t, e, r, n, o, i) {var a, s, u, c = 8 * i - o - 1,f = (1 << c) - 1,l = f >> 1,h = 23 === o ? Math.pow(2, -24) - Math.pow(2, -77) : 0,p = n ? 0 : i - 1,d = n ? 1 : -1,m = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;for (e = Math.abs(e),isNaN(e) || e === 1 / 0 ? (s = isNaN(e) ? 1 : 0,a = f) : (a = Math.floor(Math.log(e) / Math.LN2),e * (u = Math.pow(2, -a)) < 1 && (a--,u *= 2),e += a + l >= 1 ? h / u : h * Math.pow(2, 1 - l),e * u >= 2 && (a++,u /= 2),a + l >= f ? (s = 0,a = f) : a + l >= 1 ? (s = (e * u - 1) * Math.pow(2, o),a += l) : (s = e * Math.pow(2, l - 1) * Math.pow(2, o),a = 0)); o >= 8; t[r + p] = 255 & s,p += d,s /= 256,o -= 8);for (a = a << o | s,c += o; c > 0; t[r + p] = 255 & a,p += d,a /= 256,c -= 8);t[r + p - d] |= 128 * m
}encry2arr_from = function (t, e, r) { // 1  39  50  66return from_a(null, t, e, r)
}function hash(e) {return "string" == typeof e && (e = encry2arr_from(e)), to_string.call((0, o_default)(e, 41405), 16).replace(/^0+/, "")
}function to_number() {return 65536 * this._a16 + this._a00
}function to_string(t) {t = t || 10;var e = new i_i(t);if (!gt.call(this, e))return to_number.call(this).toString(t);for (var r = clone.call(this), n = new Array(64), o = 63; o >= 0 && (div.call(r, e),n[o] = to_number.call(r.remainder).toString(t), gt.call(r, e)); o--);return n[o - 1] = to_number.call(r).toString(t),n.join("")
}gt = function (t) {return this._a48 > t._a48 || !(this._a48 < t._a48) && (this._a32 > t._a32 || !(this._a32 < t._a32) && (this._a16 > t._a16 || !(this._a16 < t._a16) && this._a00 > t._a00))
}function div(t) {for (var e = clone.call(t), r = -1; !lt.call(this, e);)shiftLeft.call(e, 1, !0),r++;for (this.remainder = clone.call(this),this._a00 = 0,this._a16 = 0,this._a32 = 0,this._a48 = 0; r >= 0; r--)shiftRight.call(e, 1),lt.call(this.remainder, e) || (subtract(this.remainder, e),r >= 48 ? this._a48 |= 1 << r - 48 : r >= 32 ? this._a32 |= 1 << r - 32 : r >= 16 ? this._a16 |= 1 << r - 16 : this._a00 |= 1 << r);return this
}function eq(t) {return this._a48 == t._a48 && this._a00 == t._a00 && this._a32 == t._a32 && this._a16 == t._a16
}function lt(t) {return this._a48 < t._a48 || !(this._a48 > t._a48) && (this._a32 < t._a32 || !(this._a32 > t._a32) && (this._a16 < t._a16 || !(this._a16 > t._a16) && this._a00 < t._a00))
}function shiftLeft(t, e) {return t %= 64,t >= 48 ? (this._a48 = this._a00 << t - 48,this._a32 = 0,this._a16 = 0,this._a00 = 0) : t >= 32 ? (t -= 32,this._a48 = this._a16 << t | this._a00 >> 16 - t,this._a32 = this._a00 << t & 65535,this._a16 = 0,this._a00 = 0) : t >= 16 ? (t -= 16,this._a48 = this._a32 << t | this._a16 >> 16 - t,this._a32 = 65535 & (this._a16 << t | this._a00 >> 16 - t),this._a16 = this._a00 << t & 65535,this._a00 = 0) : (this._a48 = this._a48 << t | this._a32 >> 16 - t,this._a32 = 65535 & (this._a32 << t | this._a16 >> 16 - t),this._a16 = 65535 & (this._a16 << t | this._a00 >> 16 - t),this._a00 = this._a00 << t & 65535),e || (this._a48 &= 65535),this
}var t = {'getState': function (e) {return a(e)},'dispatch': function o() {return p}
}
var Ut = {"$UID": "j","$defaultRootUID": 4,"$keys": "z","$vals": "k","crypto": {"decrypt": function n(t, e) {return r_decrypt(t, e)},"encrypt": function r(e) {var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "hjasbdn2ih823rgwudsde7e2dhsdhas";"string" == typeof r && (r = [].map.call(r, function (t) {return t.charCodeAt(0)}));for (var n, o = [], i = 0, a = new t(e.length), s = 0; s < 256; s++)o[s] = s;for (s = 0; s < 256; s++)i = (i + o[s] + r[s % r.length]) % 256,n = o[s],o[s] = o[i],o[i] = n;s = 0,i = 0;for (var u = 0; u < e.length; u++)s = (s + 1) % 256,i = (i + o[s]) % 256,n = o[s],o[s] = o[i],o[i] = n,a[u] = e[u] ^ o[(o[s] + o[i]) % 256];return a}},"getRealUID": function (t) {if (t >= p.start) {var e = p.end - p.start;if (t < p.end)return t + e;if (t < p.end + e)return t - e}return t},"getType": function o(t) {return Object.prototype.toString.call(t).slice(8, -1)}}function from_a(t, e, r, n) { // 2  38  51  65return false ? h(t, e, r, n) : "string" == typeof e ? f(t, e, r) : p(t, e)
}function f(t, e, r) { // 3  5  18  22  37  52  54  58  62  64var n = 0 | y(e, r);t = o_19(t, n);var a = write(t, e, r);return a !== n && (t = t.slice(0, a)),t
}function y(t, e) { // 6  8  17  55  57if (false)return t.length;if (false)return t.byteLength;"string" != typeof t && (t = "" + t);var r = t.length;if (0 === r)return 0;for (var n = !1;;)switch (e) {case "ascii":case "latin1":case "binary":return r;case "utf8":case "utf-8":case void 0:return Y(t).length;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return 2 * r;case "hex":return r >>> 1;case "base64":return V(t).length;default:if (n)return Y(t).length;e = ("" + e).toLowerCase(),n = !0}
}function toByteArray(t) { // 13  30  32var f = {43: 62,45: 62,47: 63,48: 52,49: 53,50: 54,51: 55,52: 56,53: 57,54: 58,55: 59,56: 60,57: 61,65: 0,66: 1,67: 2,68: 3,69: 4,70: 5,71: 6,72: 7,73: 8,74: 9,75: 10,76: 11,77: 12,78: 13,79: 14,80: 15,81: 16,82: 17,83: 18,84: 19,85: 20,86: 21,87: 22,88: 23,89: 24,90: 25,95: 63,97: 26,98: 27,99: 28,100: 29,101: 30,102: 31,103: 32,104: 33,105: 34,106: 35,107: 36,108: 37,109: 38,110: 39,111: 40,112: 41,113: 42,114: 43,115: 44,116: 45,117: 46,118: 47,119: 48,120: 49,121: 50,122: 51,}var e, r, o, i, a, s, u = t.length;a = n_is_4(t),s = new Uint8Array(3 * u / 4 - a),o = a > 0 ? u - 4 : u;var c = 0;for (e = 0,r = 0; e < o; e += 4,r += 3)i = f[t.charCodeAt(e)] << 18 | f[t.charCodeAt(e + 1)] << 12 | f[t.charCodeAt(e + 2)] << 6 | f[t.charCodeAt(e + 3)],s[c++] = i >> 16 & 255,s[c++] = i >> 8 & 255,s[c++] = 255 & i;return 2 === a ? (i = f[t.charCodeAt(e)] << 2 | f[t.charCodeAt(e + 1)] >> 4,s[c++] = 255 & i) : 1 === a && (i = f[t.charCodeAt(e)] << 10 | f[t.charCodeAt(e + 1)] << 4 | f[t.charCodeAt(e + 2)] >> 2,s[c++] = i >> 8 & 255,s[c++] = 255 & i),s
}function V(t) { // 9  13  16  25  29  33return toByteArray(q(t))
}function q(t) { // 10  12  26  28if (t = z(t).replace(/[^+\/0-9A-Za-z-_]/g, ""),t.length < 2)return "";for (; t.length % 4 != 0;)t += "=";return t
}function z(t) { // 11  27return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
}function n_is_4(t) { // 14  31var e = t.length;if (e % 4 > 0)throw new Error("Invalid string. Length must be a multiple of 4");return "=" === t[e - 2] ? 2 : "=" === t[e - 1] ? 1 : 0
}function i(t) { // 15var e, r, o, i, a, s, u = t.length;a = n(t),s = new Uint8Array(3 * u / 4 - a),o = a > 0 ? u - 4 : u;var c = 0;for (e = 0,r = 0; e < o; e += 4,r += 3)i = f[t.charCodeAt(e)] << 18 | f[t.charCodeAt(e + 1)] << 12 | f[t.charCodeAt(e + 2)] << 6 | f[t.charCodeAt(e + 3)],s[c++] = i >> 16 & 255,s[c++] = i >> 8 & 255,s[c++] = 255 & i;return 2 === a ? (i = f[t.charCodeAt(e)] << 2 | f[t.charCodeAt(e + 1)] >> 4,s[c++] = 255 & i) : 1 === a && (i = f[t.charCodeAt(e)] << 10 | f[t.charCodeAt(e + 1)] << 4 | f[t.charCodeAt(e + 2)] >> 2,s[c++] = i >> 8 & 255,s[c++] = 255 & i),s
}function o_19(t, e) { // 19  21  59  61return true ? (t = new Uint8Array(e),t.__proto__ = Uint8Array.prototype) : (null === t && (t = new i(e)),t.length = e),t
}function Y(t, e) {e = e || 1 / 0;for (var r, n = t.length, o = null, i = [], a = 0; a < n; ++a) {if ((r = t.charCodeAt(a)) > 55295 && r < 57344) {if (!o) {if (r > 56319) {(e -= 3) > -1 && i.push(239, 191, 189);continue}if (a + 1 === n) {(e -= 3) > -1 && i.push(239, 191, 189);continue}o = r;continue}if (r < 56320) {(e -= 3) > -1 && i.push(239, 191, 189),o = r;continue}r = 65536 + (o - 55296 << 10 | r - 56320)} elseo && (e -= 3) > -1 && i.push(239, 191, 189);if (o = null,r < 128) {if ((e -= 1) < 0)break;i.push(r)} else if (r < 2048) {if ((e -= 2) < 0)break;i.push(r >> 6 | 192, 63 & r | 128)} else if (r < 65536) {if ((e -= 3) < 0)break;i.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128)} else {if (!(r < 1114112))throw new Error("Invalid code point");if ((e -= 4) < 0)break;i.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128)}}return i
}function write_E(t, e, r, n) {return X(Y(e, t.length - r), t, r, n)
}function write(k, t, e, r, n) { // 23  37  63if (void 0 === e)n = "utf8",r = k.length,e = 0;else if (void 0 === r && "string" == typeof e)n = e,r = k.length,e = 0;else {if (!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e |= 0,isFinite(r) ? (r |= 0,void 0 === n && (n = "utf8")) : (n = r,r = void 0)}var o = k.length - e;if ((void 0 === r || r > o) && (r = o),t.length > 0 && (r < 0 || e < 0) || e > this.length)throw new RangeError("Attempt to write outside buffer bounds");n || (n = "utf8");for (var i = !1;;)switch (n) {case "hex":return _(k, t, e, r);case "utf8":case "utf-8":return write_E(k, t, e, r);case "ascii":return A(k, t, e, r);case "latin1":case "binary":return C(k, t, e, r);case "base64":return S_24(k, t, e, r);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return x(k, t, e, r);default:if (i)throw new TypeError("Unknown encoding: " + n);n = ("" + n).toLowerCase(),i = !0}
}function S_24(t, e, r, n) { // 24  34  36return X(V(e), t, r, n)
}function X(t, e, r, n) { // 35for (var o = 0; o < n && !(o + r >= e.length || o >= t.length); ++o)e[o + r] = t[o];return o
}function a_slice(k, t, e) { // 42  44  46  115  126  132  138  144  148var r = k.length;t = ~~t,e = void 0 === e ? r : ~~e,t < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r),e < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r),e < t && (e = t);var n;if (true)n = k.subarray(t, e),n.__proto__ = k.prototype;else {var o = e - t;n = new i(o, void 0);for (var a = 0; a < o; ++a)n[a] = this[a + t]}return n
}function c(t, e) {if (undefined,t = o_19(t, e < 0 ? 0 : 0 | e), !true)for (var r = 0; r < e; ++r)t[r] = 0;return t
}function allocUnsafe(t) {return c(null, t)
}function a_68_copy(k, t, e, r, n) {if (r || (r = 0),n || 0 === n || (n = k.length),e >= t.length && (e = t.length),e || (e = 0),n > 0 && n < r && (n = r),n === r)return 0;if (0 === t.length || 0 === k.length)return 0;if (e < 0)throw new RangeError("targetStart out of bounds");if (r < 0 || r >= k.length)throw new RangeError("sourceStart out of bounds");if (n < 0)throw new RangeError("sourceEnd out of bounds");n > k.length && (n = k.length),t.length - e < n - r && (n = t.length - e + r);var o, a = n - r;if (k === t && r < e && e < n)for (o = a - 1; o >= 0; --o)t[o + e] = k[o + r];else if (a < 1e3 || !true)for (o = 0; o < a; ++o)t[o + e] = k[o + r];elseUint8Array.prototype.set.call(t, k.subarray(r, r + a), e);return a
}function concat(t, e) { // 48  68if (false)throw new TypeError('"list" argument must be an Array of Buffers');if (0 === t.length)return i.alloc(0);var r;if (void 0 === e)for (e = 0,r = 0; r < t.length; ++r)e += t[r].length;var n = allocUnsafe(e),o = 0;for (r = 0; r < t.length; ++r) {var a = t[r];a_68_copy(a, n, o),o += a.length}return n
}function a(e) { // 70  92  94return "string" == typeof e && (e = t.from(e)), (0,h.default)(e, 41405).toString(16).replace(/^0+/, "")
}function i_update(t, e, r) {if (!(true || this instanceof i_update))return new i(t, e, r);if ("number" == typeof t) {if ("string" == typeof e)throw new Error("If encoding is specified then the first argument must be a string");return c(this, t)}return a_g_Bt(this, t, e, r)
}function r_e(n) {if (r[n])return r[n].exports;var o = r[n] = {i: n,l: !1,exports: {}};return t[n].call(o.exports, o, o.exports, e),o.l = !0,o.exports
}function update(kkk, t) { // 88var r, o = "string" == typeof t;o && (t = n(t),o = !1,r = !0),"undefined" != typeof ArrayBuffer && t instanceof ArrayBuffer && (r = !0,t = new Uint8Array(t));var i = 0,c = t.length,f = i + c;if (0 == c)return kkk;if (kkk.total_len += c,0 == kkk.memsize && (kkk.memory = o ? "" : r ? new Uint8Array(32) : new i_update(32)),kkk.memsize + c < 32)return o ? kkk.memory += t : r ? kkk.memory.set(t.subarray(0, c), kkk.memsize) : a_68_copy(t, kkk.memory, kkk.memsize, 0, c),kkk.memsize += c,kkk;if (kkk.memsize > 0) {o ? kkk.memory += t.slice(0, 32 - kkk.memsize) : r ? kkk.memory.set(t.subarray(0, 32 - kkk.memsize), kkk.memsize) : t.copy(kkk.memory, kkk.memsize, 0, 32 - kkk.memsize);var l = 0;if (o) {var h;h = a(kkk.memory.charCodeAt(l + 1) << 8 | kkk.memory.charCodeAt(l), kkk.memory.charCodeAt(l + 3) << 8 | kkk.memory.charCodeAt(l + 2), kkk.memory.charCodeAt(l + 5) << 8 | kkk.memory.charCodeAt(l + 4), kkk.memory.charCodeAt(l + 7) << 8 | kkk.memory.charCodeAt(l + 6)),kkk.v1.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory.charCodeAt(l + 1) << 8 | kkk.memory.charCodeAt(l), kkk.memory.charCodeAt(l + 3) << 8 | kkk.memory.charCodeAt(l + 2), kkk.memory.charCodeAt(l + 5) << 8 | kkk.memory.charCodeAt(l + 4), kkk.memory.charCodeAt(l + 7) << 8 | kkk.memory.charCodeAt(l + 6)),kkk.v2.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory.charCodeAt(l + 1) << 8 | kkk.memory.charCodeAt(l), kkk.memory.charCodeAt(l + 3) << 8 | kkk.memory.charCodeAt(l + 2), kkk.memory.charCodeAt(l + 5) << 8 | kkk.memory.charCodeAt(l + 4), kkk.memory.charCodeAt(l + 7) << 8 | kkk.memory.charCodeAt(l + 6)),kkk.v3.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory.charCodeAt(l + 1) << 8 | kkk.memory.charCodeAt(l), kkk.memory.charCodeAt(l + 3) << 8 | kkk.memory.charCodeAt(l + 2), kkk.memory.charCodeAt(l + 5) << 8 | kkk.memory.charCodeAt(l + 4), kkk.memory.charCodeAt(l + 7) << 8 | kkk.memory.charCodeAt(l + 6)),kkk.v4.add(h.multiply(u)).rotl(31).multiply(s)} else {var h;h = a(kkk.memory[l + 1] << 8 | kkk.memory[l], kkk.memory[l + 3] << 8 | kkk.memory[l + 2], kkk.memory[l + 5] << 8 | kkk.memory[l + 4], kkk.memory[l + 7] << 8 | kkk.memory[l + 6]),kkk.v1.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory[l + 1] << 8 | kkk.memory[l], kkk.memory[l + 3] << 8 | kkk.memory[l + 2], kkk.memory[l + 5] << 8 | kkk.memory[l + 4], kkk.memory[l + 7] << 8 | kkk.memory[l + 6]),kkk.v2.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory[l + 1] << 8 | kkk.memory[l], kkk.memory[l + 3] << 8 | kkk.memory[l + 2], kkk.memory[l + 5] << 8 | kkk.memory[l + 4], kkk.memory[l + 7] << 8 | kkk.memory[l + 6]),kkk.v3.add(h.multiply(u)).rotl(31).multiply(s),l += 8,h = a(kkk.memory[l + 1] << 8 | kkk.memory[l], kkk.memory[l + 3] << 8 | kkk.memory[l + 2], kkk.memory[l + 5] << 8 | kkk.memory[l + 4], kkk.memory[l + 7] << 8 | kkk.memory[l + 6]),kkk.v4.add(h.multiply(u)).rotl(31).multiply(s)}i += 32 - kkk.memsize,kkk.memsize = 0,o && (kkk.memory = "")}if (i <= f - 32) {var p = f - 32;do {if (o) {var h;h = a(t.charCodeAt(i + 1) << 8 | t.charCodeAt(i), t.charCodeAt(i + 3) << 8 | t.charCodeAt(i + 2), t.charCodeAt(i + 5) << 8 | t.charCodeAt(i + 4), t.charCodeAt(i + 7) << 8 | t.charCodeAt(i + 6)),kkk.v1.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t.charCodeAt(i + 1) << 8 | t.charCodeAt(i), t.charCodeAt(i + 3) << 8 | t.charCodeAt(i + 2), t.charCodeAt(i + 5) << 8 | t.charCodeAt(i + 4), t.charCodeAt(i + 7) << 8 | t.charCodeAt(i + 6)),kkk.v2.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t.charCodeAt(i + 1) << 8 | t.charCodeAt(i), t.charCodeAt(i + 3) << 8 | t.charCodeAt(i + 2), t.charCodeAt(i + 5) << 8 | t.charCodeAt(i + 4), t.charCodeAt(i + 7) << 8 | t.charCodeAt(i + 6)),kkk.v3.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t.charCodeAt(i + 1) << 8 | t.charCodeAt(i), t.charCodeAt(i + 3) << 8 | t.charCodeAt(i + 2), t.charCodeAt(i + 5) << 8 | t.charCodeAt(i + 4), t.charCodeAt(i + 7) << 8 | t.charCodeAt(i + 6)),kkk.v4.add(h.multiply(u)).rotl(31).multiply(s)} else {var h;h = a(t[i + 1] << 8 | t[i], t[i + 3] << 8 | t[i + 2], t[i + 5] << 8 | t[i + 4], t[i + 7] << 8 | t[i + 6]),kkk.v1.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t[i + 1] << 8 | t[i], t[i + 3] << 8 | t[i + 2], t[i + 5] << 8 | t[i + 4], t[i + 7] << 8 | t[i + 6]),kkk.v2.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t[i + 1] << 8 | t[i], t[i + 3] << 8 | t[i + 2], t[i + 5] << 8 | t[i + 4], t[i + 7] << 8 | t[i + 6]),kkk.v3.add(h.multiply(u)).rotl(31).multiply(s),i += 8,h = a(t[i + 1] << 8 | t[i], t[i + 3] << 8 | t[i + 2], t[i + 5] << 8 | t[i + 4], t[i + 7] << 8 | t[i + 6]),kkk.v4.add(h.multiply(u)).rotl(31).multiply(s)}i += 8} while (i <= p)}return i < f && (o ? kkk.memory += t.slice(i) : r ? kkk.memory.set(t.subarray(i, f), kkk.memsize) : t.copy(kkk.memory, kkk.memsize, i, f),kkk.memsize = f - i),kkk
}function digest(kkk) { // 90var a = i_i // 这些加密数据有用,s = a("11400714785074694791"),u = a("14029467366897019727"),c = a("1609587929392839161"),f = a("9650029242287828579"),l = a("2870177450012600261");var t, e, r = kkk.memory,n = "string" == typeof r,o = 0,i = kkk.memsize,h = new i_i;for (kkk.total_len >= 32 ? (t = kkk.v1.clone().rotl(1),t.add(kkk.v2.clone().rotl(7)),t.add(kkk.v3.clone().rotl(12)),t.add(kkk.v4.clone().rotl(18)),t.xor(kkk.v1.multiply(u).rotl(31).multiply(s)),t.multiply(s).add(f),t.xor(kkk.v2.multiply(u).rotl(31).multiply(s)),t.multiply(s).add(f),t.xor(kkk.v3.multiply(u).rotl(31).multiply(s)),t.multiply(s).add(f),t.xor(kkk.v4.multiply(u).rotl(31).multiply(s)),t.multiply(s).add(f)) : t = add(kkk.seed.clone(), l),add(t, s_this(kkk.total_len, h)); o <= i - 8;)n ? a_a.call(h, r.charCodeAt(o + 1) << 8 | r.charCodeAt(o), r.charCodeAt(o + 3) << 8 | r.charCodeAt(o + 2), r.charCodeAt(o + 5) << 8 | r.charCodeAt(o + 4), r.charCodeAt(o + 7) << 8 | r.charCodeAt(o + 6)) : a_a.call(h, r[o + 1] << 8 | r[o], r[o + 3] << 8 | r[o + 2], r[o + 5] << 8 | r[o + 4], r[o + 7] << 8 | r[o + 6]),multiply(rotl.call(multiply(h, u), 31), s),add(multiply(rotl.call(xor.call(t, h), 27), s), f),o += 8;for (o + 4 <= i && (n ? h.fromBits(r.charCodeAt(o + 1) << 8 | r.charCodeAt(o), r.charCodeAt(o + 3) << 8 | r.charCodeAt(o + 2), 0, 0) : h.fromBits(r[o + 1] << 8 | r[o], r[o + 3] << 8 | r[o + 2], 0, 0),t.xor(multiply(h, s)).rotl(23).multiply(u).add(c),o += 4); o < i;)h.fromBits(n ? r.charCodeAt(o++) : r[o++], 0, 0, 0),t.xor(h.multiply(l)).rotl(11).multiply(s);return e = shiftRight.call(clone.call(t), 33),multiply(xor.call(t, e), u),e = shiftRight.call(clone.call(t), 29),multiply(xor.call(t, e), c),e = shiftRight.call(clone.call(t), 32),xor.call(t, e),i_this.call(kkk, kkk.seed),t
}function clone() {return new i_i(this._a00, this._a16, this._a32, this._a48)
}function shiftRight(t) {return t %= 64,t >= 48 ? (this._a00 = this._a48 >> t - 48,this._a16 = 0,this._a32 = 0,this._a48 = 0) : t >= 32 ? (t -= 32,this._a00 = 65535 & (this._a32 >> t | this._a48 << 16 - t),this._a16 = this._a48 >> t & 65535,this._a32 = 0,this._a48 = 0) : t >= 16 ? (t -= 16,this._a00 = 65535 & (this._a16 >> t | this._a32 << 16 - t),this._a16 = 65535 & (this._a32 >> t | this._a48 << 16 - t),this._a32 = this._a48 >> t & 65535,this._a48 = 0) : (this._a00 = 65535 & (this._a00 >> t | this._a16 << 16 - t),this._a16 = 65535 & (this._a16 >> t | this._a32 << 16 - t),this._a32 = 65535 & (this._a32 >> t | this._a48 << 16 - t),this._a48 = this._a48 >> t & 65535),this
}function o_default() { // 71  87  89  91return 2 == arguments.length ? digest(update(new o_default(arguments[1]), arguments[0])) : this instanceof o_default ? void i_this.call(this, arguments[0]) : new o(arguments[0])
}function i_this(t) { // 72var s = {'remainder': null,'_a00': 51847,'_a16': 34283,'_a32': 31153,'_a48': 40503,'clone': function () {return new i_i(this._a00, this._a16, this._a32, this._a48)}}var u = {'remainder': null,'_a00': 60239,'_a16': 10196,'_a32': 44605,'_a48': 49842}return this.seed = new i_a(t),this.v1 = add(add(this.seed.clone(), s), u),this.v2 = add(this.seed.clone(), u),this.v3 = this.seed.clone(),this.v4 = subtract(this.seed.clone(), s),this.total_len = 0,this.memsize = 0,this.memory = null,this
}function subtract(a, t) {return add(a, negate(clone.call(t)))
}function negate(a) {var t = 1 + (65535 & ~a._a00);return a._a00 = 65535 & t,t = (65535 & ~a._a16) + (t >>> 16),a._a16 = 65535 & t,t = (65535 & ~a._a32) + (t >>> 16),a._a32 = 65535 & t,a._a48 = ~a._a48 + (t >>> 16) & 65535,a
}function i_i(t, e, r, n) {return this instanceof i_i ? (this.remainder = null,"string" == typeof t ? i_u.call(this, t, e) : void 0 === e ? s_this.call(this, t) : void a_a.apply(this, arguments)) : new i_i(t, e, r, n)
}function i_u(t, e) {e = e || 10,this._a00 = 0,this._a16 = 0,this._a32 = 0,this._a48 = 0;for (var r = c[e] || new i_i(Math.pow(e, 5)), n = 0, o = t.length; n < o; n += 5) {var a = Math.min(5, o - n),s = parseInt(t.slice(n, n + a), e);add(multiply(this, a < 5 ? new i_i(Math.pow(e, a)) : r), new i_i(s))}return this
}function multiply(k, t) {var e = k._a00,r = k._a16,n = k._a32,o = k._a48,i = t._a00,a = t._a16,s = t._a32,u = t._a48,c = e * i,f = c >>> 16;f += e * a;var l = f >>> 16;f &= 65535,f += r * i,l += f >>> 16,l += e * s;var h = l >>> 16;return l &= 65535,l += r * a,h += l >>> 16,l &= 65535,l += n * i,h += l >>> 16,h += e * u,h &= 65535,h += r * s,h &= 65535,h += n * a,h &= 65535,h += o * i,k._a00 = 65535 & c,k._a16 = 65535 & f,k._a32 = 65535 & l,k._a48 = 65535 & h,k
}function i_a(t, e, r, n) { // 73  75  78  80return this.remainder = null,this._a00 = 65535 & t,this._a16 = t >>> 16,this._a32 = 0,this._a48 = 0,this.clone = function () { // 77  81return new i_i(this._a00, this._a16, this._a32, this._a48)},this
}function s_this(t, k) { // 74if (k)return k._a00 = 65535 & t,k._a16 = t >>> 16,k._a32 = 0,k._a48 = 0,kreturn this._a00 = 65535 & t,this._a16 = t >>> 16,this._a32 = 0,this._a48 = 0,this
}function rotl(t) {if (0 == (t %= 64))return this;if (t >= 32) {var e = this._a00;if (this._a00 = this._a32,this._a32 = e,e = this._a48,this._a48 = this._a16,this._a16 = e,32 == t)return this;t -= 32}var r = this._a48 << 16 | this._a32,n = this._a16 << 16 | this._a00,o = r << t | n >>> 32 - t,i = n << t | r >>> 32 - t;return this._a00 = 65535 & i,this._a16 = i >>> 16,this._a32 = 65535 & o,this._a48 = o >>> 16,this
}function xor(t) {return this._a00 ^= t._a00,this._a16 ^= t._a16,this._a32 ^= t._a32,this._a48 ^= t._a48,this
}function a_a(t, e, r, n) { // 79return void 0 === r ? (this._a00 = 65535 & t,this._a16 = t >>> 16,this._a32 = 65535 & e,this._a48 = e >>> 16,this) : (this._a00 = 0 | t,this._a16 = 0 | e,this._a32 = 0 | r,this._a48 = 0 | n,this)
}function add(a, t) { // 83  85var e = a._a00 + t._a00,r = e >>> 16;r += a._a16 + t._a16;var n = r >>> 16;n += a._a32 + t._a32;var o = n >>> 16;return o += a._a48 + t._a48,a._a00 = 65535 & e,a._a16 = 65535 & r,a._a32 = 65535 & n,a._a48 = 65535 & o,a
}function r_decrypt(e) {var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "hjasbdn2ih823rgwudsde7e2dhsdhas";"string" == typeof r && (r = [].map.call(r, function (t) {return t.charCodeAt(0)}));for (var n, o = [], i = 0, a = new i_update(e.length), s = 0; s < 256; s++)o[s] = s;for (s = 0; s < 256; s++)i = (i + o[s] + r[s % r.length]) % 256,n = o[s],o[s] = o[i],o[i] = n;s = 0,i = 0;for (var u = 0; u < e.length; u++)s = (s + 1) % 256,i = (i + o[s]) % 256,n = o[s],o[s] = o[i],o[i] = n,a[u] = e[u] ^ o[(o[s] + o[i]) % 256];return a
}function Bt(t) {var e = {}e.maxObjectSize = 1e8,e.maxObjectCount = 32768,e.parseFile = function (t, e) {function r(t) {var r, n = null;try {r = parseBuffer(t)} catch (t) {n = t}e(n, r)}return n.isBuffer(t) ? r(t) : void f.readFile(t, function (t, n) {return t ? e(t) : void r(n)})}function r(e) {var r = x[e],n = t[r],o = (240 & n) >> 4,i = 15 & n,a = {offset: r,type: n,objType: o,objInfo: i,tableOffset: e};switch (o) {case 0:return f(a);case 1:return h(a);case 8:return p(a);case 2:return d(a);case 3:return m(a);case 6:return y(a);case 4:return g(a);case 5:return g(a, !0);case 10:return v(a);case 13:return b(a);default:throw new Error(2, o.toString(16))}}function f(t) {var e = t.objInfo,r = t.objType;switch (e) {case 0:return null;case 8:return !1;case 9:return !0;case 15:return null;default:throw new Error(3, r.toString(16))}}function h(r) {var n = r.offset,o = r.objInfo,i = Math.pow(2, o);if (i > 4)return u_h_Bt(a_slice(t, n + 1, n + 1 + i));if (i < e.maxObjectSize)return a_h_Bt(a_slice(t, n + 1, n + 1 + i));throw new Error("4 " + i + " " + e.maxObjectSize)}function p(r) {var n = r.offset,a = r.objInfo,s = a;if (s < e.maxObjectSize)return o({}, l, i(t.slice(n + 1, n + 1 + s)));throw new Error("4 " + s + " " + e.maxObjectSize)}function d(r) {var n = r.offset,o = r.objInfo,i = Math.pow(2, o);if (!(i < e.maxObjectSize))throw new Error("4 " + i + " " + e.maxObjectSize);var a = t.slice(n + 1, n + 1 + i);return 4 === i ? readFloatBE.call(a, 0) : 8 === i ? readDoubleBE.call(a, 0) : void 0}function m(e) {var r = e.offset,n = e.objInfo;3 != n && console.error(5, n);var o = t.slice(r + 1, r + 9);return new Date(9783072e5 + 1e3 * o.readDoubleBE(0))}function y(r) {var n = r.offset,o = r.objInfo,a = 1,s = o;if (15 == o) {var u = t[n + 1],c = (240 & u) / 16;1 != c && console.error(6, c);var f = 15 & u,l = Math.pow(2, f);a = 2 + l,s = i(t.slice(n + 2, n + 2 + l))}if (s < e.maxObjectSize)return t.slice(n + a, n + a + s);throw new Error("4 " + s + " " + e.maxObjectSize)}function g(r, o) {var a = r.offset,s = r.objInfo;o = o || 0;var u = "utf8",f = s,l = 1;if (15 == s) {var h = t[a + 1],p = (240 & h) / 16;if (1 != p)throw new Error("7 " + p);var d = 15 & h,m = Math.pow(2, d);l = 2 + m,f = i_Bt(a_slice(t, a + 2, a + 2 + m))}if ((f *= o + 1) < e.maxObjectSize) {var y = new i_update(a_slice(t, a + l, a + l + f));return o && (y = c_g_Bt(y),u = "ucs2"),to_string_g_Bt.call(y, u)}throw new Error("4 " + f + " " + e.maxObjectSize)}function v(n) {var o = n.offset,a = n.objInfo,s = a,u = 1;if (15 == a) {var c = t[o + 1],f = (240 & c) / 16;var l = 15 & c,h = Math.pow(2, l);u = 2 + h,s = i_Bt(a_slice(t, o + 2, o + 2 + h))}for (var p = [], d = 0; d < s; d++) {var m = i_Bt(a_slice(t, o + u + d * E, o + u + (d + 1) * E));p[d] = r(m)}return p}function b(n) {var o = n.offset,a = n.objInfo,s = (n.tableOffset,a),u = 1;if (15 == a) {var c = t[o + 1],f = (240 & c) / 16;1 != f && console.error(9, f);var l = 15 & c,h = Math.pow(2, l);u = 2 + h,s = i(a_slice(t, o + 2, o + 2 + h))}if (2 * s * E > e.maxObjectSize)throw new Error(4);for (var p = {}, d = 0; d < s; d++) {var m = i_Bt(a_slice(t, o + u + d * E, o + u + (d + 1) * E)),y = i_Bt(a_slice(t, o + u + s * E + d * E, o + u + s * E + (d + 1) * E)),g = r(m),v = r(y);p[g] = v}return p}var w = a_slice(t, t.length - 32, t.length),_ = readUInt8.call(w, 6),E = readUInt8.call(w, 7),A = s_Bt(w, 8),C = s_Bt(w, 16),S = s_Bt(w, 24);for (var x = [], O = 0; O < A; O++) {var T = a_slice(t, S + O * _, S + (O + 1) * _);x[O] = i_Bt(T, 0)}return r(C)
}function readUInt8(t, e) {return this[t]
}function s_Bt(t, e) {return readUInt32BE.call(a_slice(t, e, e + 8), 4, 8)
}function readUInt32BE(t, e) {return e || I(t, 4, this.length),16777216 * this[t] + (this[t + 1] << 16 | this[t + 2] << 8 | this[t + 3])
}function i_Bt(t, e) {e = e || 0;for (var r = 0, n = e; n < t.length; n++)r <<= 8,r |= 255 & t[n];return r
}function a_g_Bt(t, e, r, n) {if ("number" == typeof e)throw new TypeError('"value" argument must not be a number');return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? h(t, e, r, n) : "string" == typeof e ? f(t, e, r) : p_a(t, e)
}function p_a(t, e) {if (true) {var r = 0 | e.length;return t = o_19(t, r),0 === t.length ? t : (a_68_copy(e, t, 0, 0, r),t)}if (e) {if ("undefined" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || "length" in e)return "number" != typeof e.length || G(e.length) ? o(t, 0) : l(t, e);if ("Buffer" === e.type && J(e.data))return l(t, e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")
}function c_g_Bt(t) {for (var e = t.length, r = 0; r < e; r += 2) {var n = t[r];t[r] = t[r + 1],t[r + 1] = n}return t
}function to_string_g_Bt() {var t = 0 | this.length;return 0 === t ? "" : 0 === arguments.length ? T(this, 0, t) : g_to_string.apply(this, arguments)
}function g_to_string(t, e, r) {var n = !1;if ((void 0 === e || e < 0) && (e = 0),e > this.length)return "";if ((void 0 === r || r > this.length) && (r = this.length),r <= 0)return "";if (r >>>= 0,e >>>= 0,r <= e)return "";for (t || (t = "utf8");;)switch (t) {case "hex":return N(this, e, r);case "utf8":case "utf-8":return T_g(this, e, r);case "ascii":return k(this, e, r);case "latin1":case "binary":return R(this, e, r);case "base64":return O(this, e, r);case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":return j_g(this, e, r);default:if (n)throw new TypeError("Unknown encoding: " + t);t = (t + "").toLowerCase(),n = !0}
}function j_g(t, e, r) {for (var n = a_slice(t, e, r), o = "", i = 0; i < n.length; i += 2)o += String.fromCharCode(n[i] + 256 * n[i + 1]);return o
}function T_g(t, e, r) {r = Math.min(t.length, r);for (var n = [], o = e; o < r;) {var i = t[o],a = null,s = i > 239 ? 4 : i > 223 ? 3 : i > 191 ? 2 : 1;if (o + s <= r) {var u, c, f, l;switch (s) {case 1:i < 128 && (a = i);break;case 2:u = t[o + 1],128 == (192 & u) && (l = (31 & i) << 6 | 63 & u) > 127 && (a = l);break;case 3:u = t[o + 1],c = t[o + 2],128 == (192 & u) && 128 == (192 & c) && (l = (15 & i) << 12 | (63 & u) << 6 | 63 & c) > 2047 && (l < 55296 || l > 57343) && (a = l);break;case 4:u = t[o + 1],c = t[o + 2],f = t[o + 3],128 == (192 & u) && 128 == (192 & c) && 128 == (192 & f) && (l = (15 & i) << 18 | (63 & u) << 12 | (63 & c) << 6 | 63 & f) > 65535 && l < 1114112 && (a = l)}}null === a ? (a = 65533,s = 1) : a > 65535 && (a -= 65536,n.push(a >>> 10 & 1023 | 55296),a = 56320 | 1023 & a),n.push(a),o += s}return P_T(n)
}function P_T(t) {var e = t.length;if (e <= Q)return String.fromCharCode.apply(String, t);for (var r = "", n = 0; n < e;)r += String.fromCharCode.apply(String, a_slice(t, n, n += Q));return r
}function a_h_Bt(t, e, r) {return e = e || 0,r = r || t.length - e,readIntBE.call(t, e, r)
}function u_h_Bt(t, e) {return e = e || 0,readInt32BE.call(t.slice(e, e + 8), 4, 8)
}function readIntBE(t, e, r) {t |= 0,e |= 0,r || undefined;for (var n = e, o = 1, i = this[t + --n]; n > 0 && (o *= 256);)i += this[t + --n] * o;return o *= 128,i >= o && (i -= Math.pow(2, 8 * e)),i
}function readFloatBE(t, e) {return e || undefined,K.read(this, t, !1, 23, 4)
}function readDoubleBE(t, e) {return e || undefined,K.read(this, t, !1, 52, 8)
}function kt(t) {var i = Ut;function n(e) {if (1 === Object.keys(e).length && void 0 !== e[i.$UID])return o(e[i.$UID]);if (i.$vals in e) {var t = e[i.$keys],n = e[i.$vals];return t ? t.reduce(function (e, t, i) {return e[o(t)] = r(n[i]),e}, {}) : n.map(function (e) {return o(e)})}return Object.keys(e).reduce(function (t, n) {var o = e[n];return t[n] = r(o),t}, {})}function r(t) {return "Object" === (0,i.getType)(t) ? n(t) : "Array" === (0,i.getType)(t) ? t.map(function (e) {return r(e)}) : t instanceof i_update ? (0 === t[t.length - 1] && (t = t.slice(0, t.length - 1)),t.toString()) : t}function o(e) {return r(t[(0,i.getRealUID)(e)])}return o(arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0,i.getRealUID)(i.$defaultRootUID))
}function n_n(r) {return e_e(t)(r_r)(r)
}function e_e(e) {return function (e) {return function (t) {var n = Object.keys(t)[0],r = Ut.crypto.decrypt(t[n], n);return e(r)}}
}function r_r(r) {return e_e_decrypt(t)(e_e_decrypt_n)(r)
}function e_e_decrypt(e) {return function (e) {return function (t) {return e(Bt(t))}}
}// function ee_decrypt{
//     return
// }function e_e_decrypt_n(r) {return playload(t)(e_playload)(r)
}function playload(e) {return function (e) {return function (t) {return e({type: "INIT",payload: kt(t)})}}
}function e_playload(r) {return r
}function decrypt(r) {var a = encry2arr_from(r, "base64") // 0,s = Math.max(Math.floor((a.length - 2 * i) / 3), 0) // 40,u = a_slice(a, s, s + i); // 41a = concat([a_slice(a, 0, s), a_slice(a, s + i)]); // 43  45  47var c_data = hash(concat([u, encry2arr_from("")])); // 49  67  69var l = {}l[c_data] = avar data = n_n((l = {}, l[c_data] = a, l))// console.log(data)// console.log(data.payload.items[0])var d_temp = data.payload.itemsvar ret_val = JSON.stringify(d_temp)return ret_val
}// console.log(decrypt(r))// NodeJS获取命令行后面的参数
// 假设有如下的命令行 node test.js arg1 arg2 arg3,
// 现在想在test.js中获取后面的参数arg1、arg2、arg3…
// var arguments = process.argv.splice(2);
// process是一个全局对象,argv返回的是一组包含命令行参数的数组。
// 第一项为”node”,第二项为执行的js的完整路径,后面是附加在命令行后的参数var arguments = process.argv.splice(2)
// console.log(arguments[0])
console.log(decrypt(arguments[0]))

豆瓣 音乐和读书的搜索页的 window.__DATA__ 的解密相关推荐

  1. 豆瓣读书搜索页的window.__DATA__的解密

    上次发了破解知乎模拟登陆的最新版之后,很多人看了都说好,唯独没人给我点赞,以后还是麻烦大家,如果看到对你有用的文章,可以点点赞,支持下作者哈. 还有,知乎模拟登陆的代码已给出,github地址为:ht ...

  2. Scrapy 豆瓣搜索页爬虫

    Scrapy 豆瓣搜索页爬虫 使用scrapy爬虫框架对豆瓣图书搜索结果进行爬取 Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架 可以应用在包括数据挖掘,信息处理或存 ...

  3. 【爬虫二】爬取豆瓣音乐榜单

    前言 借助有效率的工具,可以让我们更加方便的写出爬虫程序.本篇使用request和bs4库爬取豆瓣音乐榜单. 介绍 豆瓣音乐榜单:https://music.douban.com/top250 bs4 ...

  4. python爬取音乐_Python现学现用xpath爬取豆瓣音乐

    昨天说了Requests库,今天来上手爬虫了. 爬虫的抓取方式有好几种,正则表达式,Lxml(xpath)与BeautifulSoup,我在网上查了一下资料,了解到三者之间的使用难度与性能 三种爬虫方 ...

  5. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中

    小猪的Python学习之旅 -- 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中 标签:Python 一句话概括本文: 利用Excel存储爬到的抓取豆瓣音乐Top 250数据信息,还有 ...

  6. 使用豆瓣音乐API笔记

    蓝字是链接 豆瓣API V2 API地址: 上面不能用的话,可以试试这个 我这里用的是豆瓣音乐API: 获取音乐 GET https://api.douban.com/v2/music/:id 返回音 ...

  7. Python爬虫:现学现用xpath爬取豆瓣音乐

    爬虫的抓取方式有好几种,正则表达式,Lxml(xpath)与BeautifulSoup,我在网上查了一下资料,了解到三者之间的使用难度与性能 三种爬虫方式的对比. 这样一比较我我选择了Lxml(xpa ...

  8. 音乐市场只剩腾讯、网易和阿里?豆瓣音乐拆分来搅局

    数字音乐市场并没有因为巨头格局的形成而固化,反而是暗流涌动.数字音乐巨头Spotify于4月3日晚在纽交所直接上市,腾讯音乐娱乐集团数字专辑屡破纪录,网易云音乐在下架周杰伦的同时在成都与亚朵合开一家酒 ...

  9. 利用python爬取豆瓣音乐_python爬虫之豆瓣音乐top250

    回家很久了,实在熬不住,想起来爬点数据玩一玩,之前自己笔记本是win7加ubuntu16.04双系统,本打算在ubuntu里写代码的,可是回到家ubuntu打开一直是紫屏,百度知乎方法用了也没解决,厉 ...

  10. 利用python爬取豆瓣音乐_Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析

    节点的子节点,获取排名的代码为:li.span.text 绿色框中A节点中是歌曲的链接和图片链接,获取歌曲链接的代码为:li.a['href'] 蓝色框中是歌曲的名字.演唱者和播放次数,歌曲名是在cl ...

最新文章

  1. c++ char数组初始化_c专题指针数组与指针的关联
  2. C# Application.DoEvents() 处理队列消息,防界面假死。
  3. Spring JDBC-Spring对事务管理的支持
  4. vue-element-admin 1.4问题及解决方案
  5. python单例_Python单例模式
  6. 优酷视频整段代理php,thinkphp仿优酷带数据源码|php仿优酷视频源码带后台功能强大...
  7. 工作126:Vue.ls.set传值 然后取值
  8. 【转】二维异形件排版算法介绍(二)
  9. Java高级语法笔记-抽象类
  10. MATLAB调用USB摄像头实现过程
  11. 让 AI “潜入”物流中心,你的快递很快就到!
  12. c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...
  13. oracle说不能初始化失败,PLSQLDeveloper 提示不能初始化?
  14. Linux 下压缩与解压.zip和.rar
  15. linux系统如何查看tomcat版本,【Linux查看tomcat版本】
  16. 笔趣阁小说TXT采集软件工具
  17. IOS应用程序ipa安装包更换图标iocn、IOS应用分发一条龙
  18. 洛谷P1179 [NOIP2010 普及组] 数字统计题解
  19. matlab矩阵怎么进行相加,matlab矩阵如何运算相加
  20. Chrome浏览器另存为时浏览器假死问题

热门文章

  1. HTML+CSS实现小米登录界面
  2. 如何用ROS和爱快来组建网络,实现单机单IP(转载)
  3. coreldrawx4缩略图显示不出来_CDR缩略图不显示怎么办?CorelDRAW缩略图不显示解决办法 - 优优下载站...
  4. linux锐捷校园网认证失败,Ubuntu中校园网锐捷认证用mentohust解决版本过低问题
  5. IEEE Transactions Latex模板使用经验总结
  6. C语言易错知识点总结
  7. mysql50题_My SQL 练习题
  8. bing翻译使用-Unity
  9. Weblogic下载与安装
  10. 基于springboot vue h5 手机商城源码