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(/\n/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
};

  


潭州课堂25班:Ph201805201 爬虫基础 第十五课 js破解 二 (课堂笔记)的更多相关文章

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

    打断点 找要的数据 鼠标的点击事件 新浪微博登录 表单提交分析 : 先佃输入错误密码开始调式 f10 往下走, f11 进入函数 sh + f11 跳出函数 # -*- coding: utf-8 - ...

  2. 潭州课堂25班:Ph201805201 爬虫基础 第十二课 点触验证码二 (课堂笔记)

    为上次代码添加 模拟人操作 的鼠标的移动轨迹 # -*- coding:utf-8 -*- # 斌彬电脑 # @Time : 2018/9/14 0014 上午 8:08 from selenium ...

  3. 潭州课堂25班:Ph201805201 爬虫基础 第十课 图像处理- 极验验证码 (课堂笔记)

    用 python 的  selenium  访问  https://www.huxiu.com/ 自动通过验证码 # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 20 ...

  4. 潭州课堂25班:Ph201805201 django 项目 第二十五课 文章多级评论前后台实现 (课堂笔记)

    添加新闻评论功能 1.分析 业务处理流程: 判断前端传的新闻id是否为空,是否为整数.是否不存在 判断评论的内容是否为空 判断是否有父评论,父评论的id是否与新闻id匹配 判断用户是否登录 保存新闻评 ...

  5. 潭州课堂25班:Ph201805201 django 项目 第十五课 用户注册功能后台实现 (课堂笔记)

    前台:判断用户输入 ,确认密码,手机号, 一切通过后向后台发送请求, 请求方式:post 在 suers 应用下的视图中: 1,创建个类, 2,创建 GET 方法,宣言页面 3,创建  POST 方法 ...

  6. 潭州课堂25班:Ph201805201 第十五课 迭代器,生成器 (课堂笔记)

    推导表达式 li1 = list() for i in range(10): # 迭代循环内容 li1.append(i) print( li1 ) ---->>> [0, 1, 2 ...

  7. java基础(十五)集合(二)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

  8. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)

    index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  9. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

随机推荐

  1. Linux 入门记录:十二、Linux 权限机制【转】

    转自:https://www.cnblogs.com/mingc/p/7591287.html 一.权限 权限是操作系统用来限制资源访问的机制,权限一般分为读.写.执行. 系统中每个文件都拥有特定的权 ...

  2. OpenWrt启动过程分析+添加自启动脚本【转】

    一.OpenWrt启动过程分析 转自: http://www.eehello.com/?post=107 总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/p ...

  3. ASP.NET Core Identity 实战(3)认证过程

    如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆,那么你一定会疑惑 认证这个名词,这太正式了,这到底代表这什么? 获取资源之前得先过两道关卡Authentica ...

  4. mysql的日志及利用mysqldump备份及还原

    日志文件:6类       一般查询日志:log,general_log,log_output       慢查询日志:       错误日志       二进制日志       中继日志       ...

  5. SeaJS入门教程系列之完整示例(三)

    一个完整的例子上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾.这个例子包含如下文件: 1.index.html——主页面.2.sea.j ...

  6. [转]CentOS7 下安装svn

    1. 安装 centos(我这里使用的是CentOS7)下yum命令即可方便的完成安装 $ sudo yum install subversion 测试安装是否成功: $ svnserve --ver ...

  7. CCF2016092火车购票

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  8. LeetCode(43):字符串相乘

    Medium! 题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = &quo ...

  9. Spring集成shiro做登陆认证

    一.背景 其实很早的时候,就在项目中有使用到shiro做登陆认证,直到今天才又想起来这茬,自己抽空搭了一个spring+springmvc+mybatis和shiro进行集成的种子项目,当然里面还有很 ...

  10. 2018-2019 2 20165203 《网络对抗技术》 Exp1 PC平台逆向破解

    2018-2019 2 20165203 <网络对抗技术> Exp1 PC平台逆向破解 实验要求 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 2.掌握反汇编与十六 ...