潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)

PyExecJs使用

PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库。

安装

pip install PyExecJS

例子

>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> ctx = execjs.compile("""
...     function add(x, y) {
...         return x + y;
...     }
... """)
>>> ctx.call("add", 1, 2)
3



import execjs
import json


pl = "U2FsdGVkX19umsmJQJLiB/tCLyk4x/w5Yi0nPGe1+unbGPv2tAouih6It51Lf+rDLRPmcHp2JhOKBgmG9k5NNaC10PH9YhXH64t3XVgBxOJ9ZvCGBEQyOozHHylNuY/pkY8RX3LJeauEBZsBvBUM3Q2NxXWRLwWhY1prahjl7NXpw4v+UZBJZ7R8d6Dm3cjLAELfheinmlTbZzcAMd2b0dGlXbxQqrhdLWEJW+SU0TIZPZHnC7PAz6T0BFrAgCP7N6VhR7/cterXp9jEO8UXNQCroCfJ4jZzLUb+fELuPJh+jcnEwDHMllsZ4Y4t9fQLqHt4m6Nyj2zeh8u5OpygLj14NFLmPBdZzqOENTHDHsAwmOGOwz6pxEimqkl6wvqrXl0/3pzH5aSq6AvRxKKM5I7eWQUSvW+3nytf/z6if3rj/x5dWlp7jyTpPqwZWESl4ASXp+DSUAL/Ps5q8PZaXNVNUSz3sav3xROkmptJJlNQgo22f5zaFyoWs0Ozei8WETELnbRYaMXCMAfTD42HDxZ0sB+Vz+EneyINchj4a4LuUVjZbMz5BXfxWON3BkXSXecZN9tfjjpMeSv+ixLMUTj44pkV/Qd4oFUeBPvgkQ/We7JmeAX+n/IIUP8LH97Kyp8foWV/52JQ5QD03cPl+9z7MB47DlcCpSx/uF2RMV55VYRZ/Aq3DhT3XoAFiL63GwW/klK5vZCX0nyUQ2GHxJJK2WELAGGmvFwj+U2WliIKxnrzW7RQvxyrEGnVOn1vI9/M8z3kXAM5z4Mx8QLcAFTZInAjgfePWvW94bITJCI2oX0iIUr+baktZKr9v9vHBM3WJz095UVkYKpoareBuSv3iXgD32Kp2pfClkZ3Is0FxmOmP1b/oYwkKrCw/zqfC+EL6t6pD3a465Qzd53y+xZzDWiN913m0QRPkStQ8kX4nwkeMF1FiIbQvceaIPEqYsECC/MF0vTsm9FCFfd6osUOX33SU8N6NhaHaM1u/XZ17grBXiIMk9oPAXNI02IaKIqUCedZPbAG1Ve+rDVNvOI7QIyNQYlc5T2N+/c1tFD2aIxGPmFEAm3v4Ep3ZjVlXYX5Iq5/1hWb4BIbhE6rJ89QTG3UHwGKinRjJWSLVs8rFzwEzooS9DSRY6kaVufXKkP6FbXQr8W0EDibGVJiHc3/ha9LIeekkZRkzDcVjBOJyJrvgUorv1BIWuM39+qlwx1ZHGsSjSeeU/Sju5+6Y0N4Yto4tKRxAbghvqaygFeQ0rojedytTOF/LLX6khx+a2DRJsynibwmz/ZBEAIHQ6DVFlTumAR4SWF2cmQSkSKn/5/MtI0H1YPZ0PP6YVOUg/SUDXMfalUzaU/PxGuxCGPQbk2e8mBb/4P4xrYnbzxZC3/rVU/kkZ7LASjWJPBideEbCkafmmwydlSZS3qnUyDi1hXailDwIQQT4XimI+SiONWu4yyNWhFT0d69sy6rcROBKj5DwSFrPRy9D9oZsKQpoxDqkeitYyBQrALdPjaXcrPUeEEDuLt4SD09LbVEwUs538Au/9rE8pa1/Bw+e5yUh994iLtkQaNX1cJl9LB4ZM9pX5c78joUzLEUhjDftg9GTA/GZNK1eiKLLJOZ1uXD9C3nvRmDXiADVn+3L9ESgn5B/8ejKRxiyGke2bqJeV+BDSW8/9/Ge5cZzJR8Y6RQbrUSHLnyq7kXMl/aPCFI37zdQkJwiCVHp4R18sE+LKE5DKbaK5UwNDoNTWZ5EoqucD92XVfx/SwZHkgINDzQEXBPHYrMmOJAytE4Y0CoR51qQuGmgbiuskIlwxx/bJtx6wjgaEXRg17Ps1JE+K8W3BCkVJPqb5+9ro5f8IUcwFERUEmbTYxcPZYuEtsi95xCaRDKiGGVgdPlSgU8MYDfSEl18Oti6pK8LYK2gYhKQBtHqp2/Iu16c/r8T9b6GNIOH9zTfjpt0rBv2tQSw7mDp+9O9HVOkXHh1/px//8WCt7O2CC256ioZolb7+Iy7VffDL5uOijWDqcuwqAx71owqe/VFSg+UBFWtL66furcZq2XGcSdfQApx6j5E76hUt1q3JhNihvvsnEYJ9BQGullRSoHrzvcMuI9Kzsnfc4vtdy0Pta9rKRzVOuxNgAqvo4woF/+baC95uWeOAYB8Yf6NbV/oBSGoWZ49S337bsA/C6rDDqKwx7e5Tj8+gZEOoPn4zMUkHIwQxXfEq3W2UA89I4hyMvJcso1KtetGI/b3bmHSD30uMe9CXAY0rPkZw+O/PGAP/KxgNCFnjWvNkxbkOPA4s7jLd1WmLufznHR5tgaVzcAyvbugn2xg3g+Qc9cp4Ww2l93MODWRcWVjIgUwiUbbq3CTAsD/vewbpzuAo4CAWwzfT29yK/kBXdzIzWZxGaiec1tCtKu5tJBFyjlKObV1VYKMMxSixrfhKw823wBMX+msGKyAkNSDtnSbqqMUTuHS4qLluwmwqrFUB6gO9vQIdEqEfBJhXMbK9s86nbjJgcZjZqPLz/JlWLbPlFD8s6GugiI/YWNaxy6OSJwEYqfOHIYXRilBSVFYZeq9T01WqWGnfsL9aAu5+FZ4Txkw4ZBwJFUh3j6XyHrBJEn5SU6OGOix7JkiC5ZoG17Zzmm2v2wf0SgtpTbCAyPzZn4fT1N0d/0hYEdqEB1mdqzrTVc+y0P0MyMrugSfUcXVd+tbL9OH0SuuzceqrblfKACxYntRkrUMgJefgy2tmTtM/xPL1HZZyMsEcOGuWWy6/aiGmxjBxW871EhK2Bj4OZtXKnjGaUVcyjpPCub9HltuUSWaGv14Rsgl8lMrknpOWAtIRzz6/XSZ3QTwpqND0hQBRqgvQsW0aXlD71WyQnCu+7RG1cmJOxzVYaTyg4kcXsiX3zy/Qo5ylInB9tC8PsSYQ0Y3iNheLskhfgBLoM7sqDeIZ8rRy/MymKzQN22QHQ3hILFDatSwv+1AV89H5WhUVLnsypCumV3yx+5tq3x75puzqOJU+6PBYJ5OevftdDXP27ErBeDrs3NZ2XfSma5Wsc2w9bOduwX7evgxx5e1XU7vGErgl05C0gPXx2IK3tMllVVivjN0vKU2UeAJI9C00DXSOZVlaOAnJUdJowpsqoPi3gWS35+RvT4qIpBP4mOQrVNzHoY2g8t8PtJlHxHrTyv+/m1oj785SbJhamdrgL7z1EOGvcNp+rNJHQr3o4L6X/4BPHwAgm6O6pOQSnKCTMDBC9ogFv95nyxaP6cZYtn3i72eYRbFk7ftz98cjCpDx/kEgATICTwhnfgqe+uJiW9SpnfYuEVydB38O/mzS5NH+ocPALqwuF7sS2uIOae/9MX2zygpcNFUC5uzIAjVN98SsxZ/KSogPwEzhsmAn2OjDfFCWjLqiCPmSxVx/y4Ib6Nw/7ugV2wT9IIbk1dhwQCmKJ3dctQK2jVXVQRz/cPqiZebM79MVdx4XToKR/axQx4Fn8HY4C0lxWf/kafCnpRl8NM5c4QFAKntiutnACHeNi3xRCezhSVsJuW+J2wGjSfpz8AVNKsO+AE+7hgaHOtSjgUPSrUePvK/TUuwgadJf1FNxBbRWjv99KjzmkPM/u2IYkRkcF9LAHFmAOiDM4lUsL4hNwhNKwvHphqzI7YoBcCvU4IOKx/70NTRJGPELWZuCMHAYlU57CygkHJY80hoXTKugBoTGaQx/UeA9qVLApL7eUQSz+zEtfvWPAT34zhiLMo3VN+TMvkqa/vyS5O3JoI63AnGqX8GcAQX9FaB9/tZgF7AzZSlDM1/gQr8AQsgNnxdbQW1JOWIgiEZr8qtejVNy3aLMkh1d7zrWjP0t8fWFPupdxF8SFBgRrwQUXnbb1/2+T3qwaJmfYg5zJ92dosvLnkMeK8G8q2MYmL/JP5Su/LgqJpldCRlHDBvQ4h6EioFXhx7TMGUEdYGh/vPqYpeMiLP4wCSQoLHMypdvtXWYkCiVz2HagbxIWzMNhkEcD61MxP0x+VOlKax0WxkICke1FMb2Tr483AzMCwnSUCRWNjBNjULkJfc06mscT1Dylf0/K8HtC5ww1EQ760YSDaTA+hqMtPLj2w5NN/0jMXcBDQAMzbpH5fMIdIPgNdLaFODu5gGcQLq7rANNkOpo94iIDQfGwqJu0y2k0chgicnzB0/sRHBVatcKbVJs+2r1j0jMNNZXMVxXEq07Q+KDMq/OH8OAifNfST3YK4fDeJFCkRCAfpJPBDO4L+LCykeSFhvjzrNvEGcGnvCkVH/b3NzSQjQCdWa6RQhdNMbRpO9+JlzpGmJDlsqnh1sJtkGb6o4evTkKqesimKY5MJ4UeAIgccoEgSJvbPNRn2HG0FC3WBrXq//00tLjg1UscrDpgTnhtEpKoP0fCDk5m5koBImt93eO+zKBuusS1LuJWnvYeTDtt9qWCkJNVGuYGKTvUEBmHewaopwZOZgclPW3trFXkmmrr8PXFpnQA5tBgREI2VrwjaTncmkgtHleZ0mTa3vTc8IfrI0ZHCvQcU9MsVhkQqOyNwCdrvQ6/ZoRO4dv7aXhZK/jv78fU9axCOendB+4RXCghXYBuGxCA2Ew+i4vJ1eqa93wvTa9/qQb6J07onZU+uL+c2nZKT94Z1/YQI7jiTt4u+e651MOhSBcDkNYq87XU/fqZsJQ+tU4YpViFiPhkmzRklXlmA/DjkGu0FaT3VjaJ3l3hRj3SChVKnPF7zLoi/HnaWM18QHAGqY3W2NK9qXjm63uqTfbBiKhL1+fWvNaRacO3VEdnzW8DbItY7YE8ct70GNcKE7+Zzu6rqnQWLa3MlWadu2HLS4olHx1dS4uS5b0kY9qzxkKQeeCUSRuXax+gObkpcETYePgh8h6xRAMQ3u7AKSPvTZNkHEu1WAoQ8dAZooIAhxnMSoodBy2xJcKD7LWn/6AiMt1rp25nryYVi52Wm5+3KVZaCXTOoeT7Gm8cWi/D1bqxkrfRRnKD/qg0lg9s4uLk61NmcYeTEgoxSHsX3rYz0sLmiiJnVRxDwVPSRDqn75U8+fvjEdYyR3EtuRNUI2dfD5MkCGnOBhp/NPdbpo4XgoVby93zh7/Xm4v9FiKIoMjnUBJe7KCeeUmOo6mbnUZqrk/nN+y2RJrQsNsBU2DQEOMZo3ygdCX5MgVVYfZgcu4HU4rLWxqvSs5/v++KL1W/lXtQZx9fmhDH8++yj4IoNjgE4CvItFcwc1F2+apD2E/uYeXJh3W6XsVk9rMWLXCP7HLQqRmQytwSpKKc88eI9GvdI9wr559nlI54Wi/uiI9W7JL2W3zikpHemLqXgsQy1rAaK5cvyrBbprKEKN6OFYfsPtVx1hfqlJzMZdJE+9kNEkZUAxFCPiNKfzj2Vqf+txMR3+GJbAFCsG5bMXNhV/wLyrGxMs1vUAXugqFaFLSctGLgF9w/ecqkKJqVwyPSlJHEXCJRLY5bB8IkgHTAVprWeQy9RipKNzcN04ECTkSo99JaAL/8A9ootv4g9uxo8cuVDwDD2CW4lOIyuKsdaIcXzJESTgol/GwdirzWWy5p3wvfqwMptR3GUWo1AbJ+vye+d7Nl/W+bcMn3rLrJohOXqF37GxqEzLc7fR3H79Uqvpy0+rEA+0BWWAGFymo+Ns1HyCC02DTpXSNBse/Hwxi2mXp6dPTSW2YDDgqLRAeoA6pMn21IxJ0D7k/lJQnLKIwxH7Djcr9egbJpZqBrJsE1OVEFMygaHEDNxIXdt+X4ZU0buA5zBuKfj2AajiyCuJXUde+kABM/4yGNbxr+E6w33Mv4i261lAnqtPTl2k+tMf2D+iyDJGFjqFmFyQqCB+pqnZ09dQ9JyhlRpCWCwzVsgudmedcBU9z/GtZmY0eWQ+ARB7NqvVECLDoxdndvQ38tOKUXLlY8sEynFYkT51rY9DLaStK67HNLQSrm7GW3/Bj6S5ngiilP0uWDzIdqy6XGGUT5sVfjtpe+kapxh7G9HtEB+8+Itt7xDO9nLq5aicvXI8A89aQFe3aqEAVJ3gvuuqHm39VEoQX8fFKY1vwPb7ljeguBfp9u7U0lszQvZhm8cwKPoxbSxUeM5yenwZMYV90fT1OKlp+h7KIxGM6da3fuyMj+HADoxV17FiDDddIo2eStKBIZxhvqGK9XAhdQqAbZGXXnRNeBYi95GMOc24uIFuMoGNmBJOetd4HLaJq1eDirkf38TA66uxVHhm6EOKdvaTHutI+O41nCPX6gIWwwCbWr9HfSSP7x9k3CYT7ynYEcUmStKejDjRg9VElf3BmX0jZ/Cj7AEUFLw92F9J7Hh1mQbJZZiZPO0js/6w4zy8eEbdvViEMi8o7thQktnV7bmgeOwLGGKWVtKrpeH5JwuGgmxX8hre4MV6IEqBhjw+mcAxx4tj1ZxkWMFVPIowCbeqSNYmcuwk10i5ZVuhi6nxh9i76roNfUiHOAJTr/e4Yx18T8mPqCrLJiiYLRz9j5tTvaHXIuWFXw3Gsum08LPYMj0wee2dA60lc/uplbQTEXOf0TmJFcDckJQjgKx+qi56brMv9/6K0H4D9Hw5/+YYnp4/5x+4oINDLKve+1D7S+3N7DYvt0IOe9uEUEDoJodjXrYCajGaq7Lp0Y1OX0O1VbKGVru9V0SPkjKzqROj+plp8/AmQf8ZAptDbZ3szi2ZOO2SB0gch95Wnf4U29XDE7rWrS1IrrvPTXtAczE0Kip9iGzTOAASVg0X8+5mnRBWVdadr1+E6uDXHP5biP2cqA7gfWA23fluMEMzHzyGSgDpwDrzZw3HHS+cDYOvYhC27wuVeNMcmmzjg7XbWmeJFi7U1mW+RjDAudL0vSyZFleFDi+t75K6LxyScEIY+IH61LeygarwEyRLeITEZPYc9HMHkw87RAdUJmPDd5VjUbfgwD1OsrrdeJiGRP0t3zkUNwglVYCoszq39zYO+LzFXUt7BQUWBYkkGkAxoIuAerOqjfkPxyJpB7gMxueiEMII3oxniVtmcoNzdSXbePd05XtdluticBpASGLonM6Pf1AvNeEshNC5IHhEiDsd22tLltd+IG0mmo9S2iLZ1H7plyViw+leiPpaBQjizCPrb/rL7k24KG/M3zXlWkItClYJxR5uzfHNyuWRGRX+/uItDZEkIiAFDkJPGvm96cYP5v9xymoeffptBzi3zm1goz4m+GIrPplEd6sxzNEmeCHdHcYrAiBT8YcOVr4bcVBs8k4IJ8WWHKHWDXnzqmC4Ge+w7zSEfz/wCHJY0SzTbX8PiUE61tAQGCyZXSdBrWBVqW0L2DFm/0jpZIWvYqOrHl8mmGI7ufajhGCTj9Ei7W0dGGYs+8mMIA7dZ3v6AJf/XESLUFD0fkpk0cJ9+QLfXxdSVJobYBgdD9d49XBaLVZIRVmFDSGSKfWe7sFbyql2WJS738okJUKcRUkIJrUVxafSq/0Ooo4HKDTTKof4R2NUdw0uavWYj5UhDiKRB6/+Pq1ml4atozklsHcP0LG8rtZGjpfhaDRvEt5Vdng/seyWmjK8wDWhJVvmZiHWFf2DuS9ZxIo/RAWUAPYQ9iTo1OJ0xl7o7mdHid6yZV4av3tulD6nHbWD8bthIdKZ+QJrgKL0GEI27Mu+d3Zn8P5AD0qWrLTrrM0dtuzpBSAx40+epiLF5Gvw2ldtXYBKaHLStHwqCa7jV812odWx5HhbFsQ8UFJDrNqGwh4oy2s5uc+nIhV8HYVbYyrBAyznytQ2mf0KxVhOeUhachM4SjPB7ajuMlwdi7uzpxm5x4jMIHDiDEMlxTwICPL4yLlOz6X5WQGl4/9PC6QKZPTy0jxY2zg/cdX3S4vyd2hu7fh73FofOQ+L2+uoz4uXsBgY+tTyVQdF9nvAdRvOx0il+rndFah65kBzbiNKTj9RU1UC5Ki61OMprUZIxq77JikjBVi3VGS8ajTTODNcczTErKu9T+oONWT1fQ13K8KeqXH5/H4kjirR4wt3xPrvW3z/8Gh3eCf5N/X/eMIMjcvLHjhREAGPUYANM6UxyyzvGPJ0wKcSB2anNtwEtodlw4i6itm8NTTHpVc3beiwP4XAng0h9/+VVIgUoLS5zRz4L+Nl6+PBl21fhU0zp0EVkIRYqDBb4XBU7rUIyLwjnsIl7h3Sxz7J1MkNPL8Z1v91BWnOwapzKdWOAxnNU+w6RTejP+vxIMBBwvY4w4KUxoAHJiF8us0D8Lf95P+d5zqUx+MonF7W0RcPLH7R+w/D1tpLcCGjaJPT8CZOp+ZVof2LkoXYuLU4ykNGcfuY0yK+8Ai+3/7JahEXb3X8Hnh4v9eI/sa7RlTqe6aSorPWy4ejd/6XpCuYmDATQOKCyVoxoHsdFi+vG1XdukYrHAmQzF2/vKde9FPWn2JrNMDwU44TwuJbB2ptoQNtGrbIiaEfpQpHpJZHcmqL8au+9D2HT6PDijiY3DqQnLEItYvhlFliaSngcQ6NeofP8fmJyJaYrvkFm5Sr8tdHza/S6kXE9AqGyJHFdfg5Rx9SVyUsgJXvvMMVdGME/7Ku/3YHXF7DUnqv8jfzFxdgJZLUrWgQgEzZD0OODK6gXr/iGSRiAnnWSv/fWt+Dic9dMtmBGMop+bBMTktw4HVeFvgqTVX4q5iZSA/dnsuVZLcslAv/dWbcC3d0zn1msHA+HogoIudCAK7f4vdj7VlvdDgldITS+c4587JKE78bbH1CxGsZ7SFYU7ChhugW8QINnUOaPnK3R72YFKpZuVB6vykJl62gbm9JShBaOZFNERzjp37bC2EudhuUXaN1DCEfPGm1/KU6mdItZ2ytztWcYo72tV/AogfKkoxrEo6TaaoZKEwxQmX3JBWKad6UcOvleGnHQm17Lk94oYu9joEY2U/4s6EhfMPXTKe7Y+TS47CKoSqUb/MJdRujdNh5/IkGIiQT3UbkH2FO4HjQ4Xtmo8nSh9dGV3sojP7rri737wt3Slm+AQh1DGQfk6Z/rEKk4hYspqcVd6xk3BmSALzAKHhKmTBonW/nnL1kMTP9B0u0XXX/hs3apgPROAZRfvdAwkzUHn3aY2IYxiEMEsEt9L/6GeJU4BYfBZi97+jucY/72ivbv6tkfgixV8bmA1V8u0vrLlAZ1/XgqSWTiKxpNTu/mrFGyWLcl/m2UYjk73xUiLCJL5IdnKgF8gJlXXjJzuPUsSEZ3f54IRe5FjtA3+z03u0+qeu6CGq/kcddK4hbrIHPD9dDpYKC4fnJDnYGqux9uUa6d8squ3pPZM9NHsPeLFhTQGDnTPscM+HWOcW5wEEdyro+Mkz13OjAEMADDBw07Y5fFHtpb9T1+SZQtr4UWQtglPM5M+Ucbx7+lc9i9DtcR/82f2MQeji479ct3Fk+CDKDP94N19XN269ifeBholRcEKBs6MwXL9mzzuA/08tmPdGTcC3oWCRysRihvU+X+seVrX/k5ahBmUUR6kInxLK22Z/CPS8iXmA3WsbdJstGyPsINrJZW9jCYmP5md9hzEGypvKcLQ/sY0sMn5hnbKYQYgUbJyCnp96y37n524ry+X2Si+7YW7XnOly8V1xmk4XaEwjLIK1mLskPfxQbbNUomhSJdcZRnFpSVWf63C5Wm8t/a41Hp15tP3e/NMag1wJt7N1wiYZRCPV5scewICq9kX7V0aZ1xklq9zItXY98GDQLwOsUnggABvY7laZC9FF2rpHG2TZuwzUkeVUZHwf51KoGNuCoLfBwWR57dizVvhc3UCgtjTp/8N6mHFaFRYBdXpRn4uT/Jsqk2rwvaBV9pzmnOF7PtO+wphdFqZFKFmIOzbeOSkd7JlknPHvLozzkpKZbRvx48zqXF0O9EA53XqoqHJ4mgrhtNElJwLJL+y5BhVF+2J+uNfZldirV3csr1OnyqhApzGwZzqcR1+9YCC0GWWYl5mWkM0bkDPx8xXhsVJS8phnvhMur7grS5jhEu7NZKjx3o1UzmV191IqiG04xS/+JMO1Ef0vXN5M6KL1jK2uUZ/DgCRBEGUYSyN3cVLp1l7CcIRx4cE27L/ow+fWK8dlJ73WXMWNT4p/InVrEuSQ6Y5hoWjqJK43pL9CAuqa6rfUT5ObSe+eUye6G1p6vD9a+ZvnAz6H+atVRqk6v54k3Ag/ne95GfhDEb3LZjORZspewKAm7+DE/WMlV4PxqI0d/C+qmQoVJD5lGyllbc9EWFGMwWbF9DVcUxlAla8BrZSW2PyXTJrlMQgWk9G8b1vqa5O1Lr9YkwoEqBpopzlK9qV75W1K8T5YOcdl5Ah4KGhQZvofGJAGalgsT3co4gz57hXGMIW997gZS7muae3OlzuRCjaYh29IifUELHjFf02vxXyN7Datgp+/CguvAgYFjFn8jdFKMXsDmpN8l+FGBhvwJyQwLv6B4gDeOLOr6/xGO/kllYq1qKsqYtaXd2K/lfIvml1vH6R8fmGVtkyptpQ17gTjGjWt4ag+67Hn1/gd5mZz/OyEV33Xat35/rXzWm7AyKzmYI6mthGsy6I1Myl80O35axDehY6GOUUp+feJbzbK7niseYdUn9PhC3SmDjayt1P3O+3+2LxsOb0tuVbICfYFWVvlTkEn5etuqgod6tNQlKotyqY479qhKKE7DVQCDIhGHVr/Lc9p8VH1EzqB+CB8+Nw/y8kujmtGM9l4VAoVz4iUITY/uXCABK8m/3SjcyI3oEbkSqRHfylPVGYeVz91VYPBOseFFd1ccJovACmODIaZBozKE5bqmTvbsT54QehFV7jdBs77Pff9UKZgAGBQmCm4cLQcMfOgXeXwSSHwhm/XASvdj0+AQHDYvEHXVD42iNbiDUsWxR4bFfWd2xhYo9cFnQTgoEMcWikHoqLnm/PSIP3HPeHQbG0Z9Jn8xKYvvKol31YKYYgMdTckKsCDMlWquiG3QOhA1kiNgMS8PIJF2TY6GACiHl6CHfKbOCZDtlQf0eiOxXPYF0i50dT14IQWEtpVLYJjih1tcSnjMdxrBz3hMOjl74GrG/b7WCh74jp2U1TPLCkLBniWAEkxTgalDWdmMnrc93uTFdOs5g67UtT8JEB3QfYZCHqBajLPMBF52qzgGz6m4Vug72DXFJwCANJVxjBbvpihCZrETy6gdoYV56VtbTeEyRP1P/qlboex3OyWecUaryHZaU+TFFaw7HB7XirmnjC6EcNxr/4bVsvOm0mytXFv+HWF5A266+OSAYggfsOavnhmmq9GVysPMvadxbteDgOjDQjJRJrXf0beRSH0BvLBYlInILTO3KKfZtV+8DINGvAEq8tu0DwtCOsu/MBGj9cCNfNbGpkAy+Rr8gEjZksc/vLE7c/t+MFAfx+muaNwY76dMUFh4BtTD2POxC9+LjHKR3yhbeJhiaIJ3trVrWemSq3f8VDWETz0cbNBJTMc1oI5D57Uaz+dk9U12vZf7rU0dBhti5kb61sHvXXK3HG6vPwKXZhMixQXLaeMK5xf0zhA2jj1+ET8uZvYe5jNlkD+jam+JULk8VNyUzpFWWX2wZvYJTUNCP7C8j7iFx4nFZR2LjEcMXHGa7Xn1+HsKCuBJXHQhw8onHWMAo4/Z+QVptFpAoT0P8P51OIqt8gMfM+FNmpBY17GdlxH0y9y/gRTsWsnxF5idk6SiNnBRKQXoOldrfOI9x8jb+428qdL9uxdNOXPGWsUbBWi2CP3Ae8e2MiHEzD06wSplZqZxLMe1sfxL0pPi1LyJ7OSFipnAsfNJfwSelHS3WrxMQdUfpUg/V/vTkc7t2n69CzPc8U9Nl22w0VCr8QnQ/A+uB1Xu1HetD6x0VRozok8b2iRazijRTweTTdQm9WawD9Jy3VY1mlcwUkaGKQlV9wus/hOf4CYn9qXrW5W/Gfr7toATLdmXEUIojUeCTsues1rm3+KcUKFiPF2Sw1eZYSyS1mVcoGA2/I2BzRrH+R5VRh+n/G8AOr82cAR2DF1tdmU6gY0Wt8lLnftGzByCL/X5ZRZOSNC8dQQhalLER3jxHh8lF+wVqB6bHPBXvvqSkagfHoftcPSPs89J71F/vEJlbRwXqPNO9S4EGkbmo3pNuNB8RpY3S/1DBQqgdxg0WokGzElnZG104bvkukyJPH9yuTt2V3R3o5nF/ql4yJcLG4L82YEqLr4ePs01eurHL1hMWm0CoZweSB9C0dPoWZbrzJ0UGdVtD1A2LrnSaUP72IkMprJ0s8xxQ41AyLW9i8iXjBvYOU76tqOaEwzkWhHAQp+5JuwW4AOEkdqt/W+w5Il2ProlUeJs6C0AXXVKl63OjuPN58/QYjWKhYqbvmdwtuVPei0tnYm+P6NugGBsIynkM5FFRrSLQnmHESZV2QKUHeDn1zHzZj3hXVo0RVbz0cY2p2CZjdD8v4/UJZNFcpoufr7psasUu1YwzWeQNX1bvsXzKtuu8BIZlyg2jEyJQOi8cJQPEyBJmnwiN0e5ok7qYjJFNJJY0F/dD5C362SZ6uG/QV54Z8+Lq45FAqMB1s3TfEO/1ef2OsAPRovCJ88aEARrDd5+AWGwpDiEpXlFSbifCaz9zKKbxS0unnr7JKnUps4RIBWfqfP2EXMWvJUtEPAKUEu1tuyWEsVgW0LGyHlOM/Lmb7H3SvNDZ+M8PvxbSi+2xOt60Eg8MsTHRVA5E4CHsNHPd/HQHjIf6YuQwk+CCuKd4rdFvsH5nAePTnE3t98MzftZPlL3URmE0FZoHu2F8boN1bWwUM4mxiMCVGI2btXV62Jf4YS9NmOzr1+SvveWV3gJi3qNmvqNpG37UIW7NMAZxor3Z516Me//oY/VSuAlclJfLGmX5SJjBcOh1sdLxcGUyAqkcu6vHztn96FHI16qBmjDJgCe2GcrxXp8P9XsBmTym0jVkCL3ppkktmTGd73guTY5SfZHacQ8Y7AN6AJ0VKnEP85ZXFrkJLyzRvCO5foUib/fayrxUFLfwh+kAJZ8UZjgmzQXlKMjtyrOyQXWg72F0pf+7uzW9514VD/LkNJJN/eV5wpAs4bhdi2XFONI5sT8QsQklaw6s+hsPLblBnuBNkCKLapuKlMFckEHYYiqcZ55G0ev0Ym61oIHCJo4lOHF6vQJ+5h4Sgf+ao96KfCCpH/vI6KxZJDMLDDK1BLso2p4ejoOKArv+C3WCGvlhx7KFLXFXe+FNfv2hg1pVXBkitbZDXMCuxEZ+5Qjip3WhC1CDofZiBC2kM54PnqPRflLMWuOA/2w8lZm1O3TR99MUGTzI7PMECiq6JCJMQgMgaNEMqvZfqJa1zlcmFZHQTmiUAIJXIO0xPkBCSgBB3F2gZzaqz0XuvX+7Pt1u1SACk4Fxv5j56fuyHXKbD66Q2UNHJRKfg8biIyQlMt9ZgCBs/LoAIHgbQMbGSJdpz8mWuHMuVtBaD3TGZZG4Q/A68i5oBwI04+LyIWjNgiyaZ4XmYitDpnV/zSUUSETh/PKVB3B3dYal6szWi3+n2sbFYwiuKrArD7lpOmpwJLw28ErdIgxPC60M6yh1UihnlNVpXXmK5PIk0OVmuq4wA8iW5oivUwdoOR6zXOH3IaPAh43SJudDg0OM1Y/w84zCXeUfjipPbv1ubFZYvA8vbtp6FyimTDrBmfk26HBXJq71rVjSJoqIWqsHritz+C+6CyTCIIxDPBDpi+JpLjKEEvoeY8CkyjxlFeesMvblMkOHYhJ3Vm+9JEumiBV3yjoCm1Bc4xQ8PNqUI2hF/1jF3H9Wb7VvADaGghx/tbdmxWgPNYz+AfFiHSD2o6o+V9Tgezxswzs+2wYNxqjxmAg33NNJxbfLslAAkBvSqD0EMi6PpjBkNpkcKk+FGR2GtGo+CCKleievj5eTx+S3/sAwW1RUHpAP1KinJ8GccFdOdsvDbvRRVRq7Eh0UZBD02yS/EtV5/7NKnXB5bRxc/ePkJwgf655tPYwfhZGC9ONLNDLnnMAsR6x/FWLzBrfEKQAVPWnbUVUJVC+ihsC1boC0Lc"

aes = "b6ce159334e155d8"

with open('luo.js', 'r', encoding='utf8') as f:
    result = execjs.compile(f.read())
    result = result.call('N', pl, aes)
    result = json.loads(result)
    for i in result:
        print(i)

  

js 代码
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;
    return d = d.slice(16, d.length),
    a = o(d, g, h, c);
};

decode = function(b) {
    b = b.replace(/
/g, "");
    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
};

d = function(a) {
    try {
        return unescape(encodeURIComponent(a))
    } catch (b) {
        throw "Error on UTF-8 encode"
    }
};

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
};

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
};

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))
};

m = function(c, d) {
    var b = 8;
    var a = 14;
    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
    }
};

e = function(a) {
    try {
        return decodeURIComponent(escape(a))
    } catch (b) {
        throw "Bad Key"
    }
};

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
};

v = function(a, b) {
    var c, d = [];
    for (c = 0; 16 > c; c++)
        d[c] = a[c] ^ b[c];
    return d
};

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)
};

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
};

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
};

A = function(a) {
    var b, c = [];
    for (b = 0; a.length > b; b++)
        c[a[b]] = b;
    return c
};
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
};
C = function(a) {
    var b, c = [];
    for (b = 0; 256 > b; b++)
        c[b] = B(a, b);
    return c
};

var D = z("637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16", 2)
, E = A(D)
, G = C(2)
, H = C(3)
, I = C(9)
, J = C(11)
, K = C(13)
, L = C(14);

w = function(c) {
    var a = 14,
        b = 8;
    var F = z("01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591", 2);
    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
};

y = function(a) {
    var b, c = a[0];
    for (b = 0; 4 > b; b++)
        a[b] = a[b + 1];
    return a[3] = c,
    a
};

x = function(a) {
    for (var b = 0; 4 > b; b++)
        a[b] = D[a[b]];
    return a
};

  






原文地址:https://www.cnblogs.com/gdwz922/p/9684060.html