NBA球星数据网站,数据纯前端渲染,Token 经过加密处理,JavaScript经过eval混淆,适合JavaScript逆向分析。
如果Python运行execjs中出现编码问题,要改系统库subprocess 里面的Popen对象源码,init里面的encoding改成utf-8就ok了。
参考:
https://www.jianshu.com/p/df0000013254

t=(function (p, a, c, k, e, r) {e = function(c) {return (c < 62 ? '' : e(parseInt(c / 62))) + ((c = c % 62) > 35 ? String.fromCharCode(c + 29) : c.toString(36))};if ('0'.replace(0, e) == 0) {while (c--) r[e(c)] = k[c];k = [function(e) {return r[e] || e}];e = function() {return '[0-9a-zA-D]'};c = 1};while (c--)if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);return p
}('g h=[{0:\'凯文-杜兰特\',4:\'durant.5\',1:\'b-09-c\',2:\'i\',3:\'108.j\'},{0:\'勒布朗-詹姆斯\',4:\'james.5\',1:\'k-12-30\',2:\'206cm\',3:\'113.l\'},{0:\'斯蒂芬-库里\',4:\'curry.5\',1:\'b-7-14\',2:\'m\',3:\'83.j\'},{0:\'詹姆斯-哈登\',4:\'harden.5\',1:\'1989-n-26\',2:\'196cm\',3:\'99.8\'},{0:\'扬尼斯-安特托昆博\',4:\'antetokounmpo.5\',1:\'o-12-d\',2:\'p\',3:\'109.8\'},{0:\'拉塞尔-威斯布鲁克\',4:\'westbrook.5\',1:\'b-11-12\',2:\'m\',3:\'90.7KG\'},{0:\'凯里-欧文\',4:\'irving.5\',1:\'1992-7-23\',2:\'q\',3:\'r.9\'},{0:\'安东尼-戴维斯\',4:\'davis.5\',1:\'1993-7-11\',2:\'i\',3:\'114.8\'},{0:\'乔尔-恩比德\',4:\'embiid.5\',1:\'o-7-16\',2:\'s\',3:\'127.0KG\'},{0:\'克雷-汤普森\',4:\'thompson.5\',1:\'t-u-n\',2:\'198cm\',3:\'97.9\'},{0:\'考瓦伊-莱昂纳德\',4:\'leonard.5\',1:\'1991-d-c\',2:\'201cm\',3:\'102.1KG\'},{0:\'达米安-利拉德\',4:\'lillard.5\',1:\'t-07-15\',2:\'q\',3:\'r.9\'},{0:\'卡梅罗-安东尼\',4:\'anthony.5\',1:\'k-v-c\',2:\'203cm\',3:\'108KG\'},{0:\'尼科拉-约基奇\',4:\'jokic.5\',1:\'w-u-19\',2:\'s\',3:\'128.8\'},{0:\'卡尔-安东尼-唐斯\',4:\'towns.5\',1:\'w-11-15\',2:\'p\',3:\'112.9\'},{0:\'克里斯-保罗\',4:\'paul.5\',1:\'1985-v-d\',2:\'185cm\',3:\'79.l\'},];new Vue({el:\'#app\',data:function(){x{h,a:\'NAhwcEVLEnRoJA7acv6eZGvXWjtijppyHXh\'}},methods:{getToken(y){e a=6.f.z.A(this.a);g{0,1,2,3}=y;e B=6.f.Base64.stringify(6.f.z.A(0));e C=6.DES.encrypt(`${B}${1}${2}${3}`,a,{D:6.D.ECB,padding:6.pad.Pkcs7});x C.toString()}}})', [], 40, 'name|birthday|height|weight|image|png|CryptoJS|03|8KG|5KG|key|1988|29|06|let|enc|const|players|208cm|9KG|1984|4KG|191cm|08|1994|211cm|188cm|88|213cm|1990|02|05|1995|return|player|Utf8|parse|base64Name|encrypted|mode'.split('|'), 0, {}))
function ft(){return t
}
console.log(t)

运行结果:

import execjs
with open('D:/Users/Desktop/1.js','r',encoding='utf-8') as fp:fl=str(fp.read())
func=execjs.compile(fl)
print(func.call('ft'))
s1=func.call('ft')
pattern=r"(?<=name:')(.+?)(?=',)"
name_list=re.findall(pattern,s1)
print(name_list)
# -*- coding: utf-8 -*-
from subprocess import Popen, PIPE
script = '''
t=(function (p, a, c, k, e, r) {e = function(c) {return (c < 62 ? '' : e(parseInt(c / 62))) + ((c = c % 62) > 35 ? String.fromCharCode(c + 29) : c.toString(36))};if ('0'.replace(0, e) == 0) {while (c--) r[e(c)] = k[c];k = [function(e) {return r[e] || e}];e = function() {return '[0-9a-zA-D]'};c = 1};while (c--)if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);return p
}('g h=[{0:\'凯文-杜兰特\',4:\'durant.5\',1:\'b-09-c\',2:\'i\',3:\'108.j\'},{0:\'勒布朗-詹姆斯\',4:\'james.5\',1:\'k-12-30\',2:\'206cm\',3:\'113.l\'},{0:\'斯蒂芬-库里\',4:\'curry.5\',1:\'b-7-14\',2:\'m\',3:\'83.j\'},{0:\'詹姆斯-哈登\',4:\'harden.5\',1:\'1989-n-26\',2:\'196cm\',3:\'99.8\'},{0:\'扬尼斯-安特托昆博\',4:\'antetokounmpo.5\',1:\'o-12-d\',2:\'p\',3:\'109.8\'},{0:\'拉塞尔-威斯布鲁克\',4:\'westbrook.5\',1:\'b-11-12\',2:\'m\',3:\'90.7KG\'},{0:\'凯里-欧文\',4:\'irving.5\',1:\'1992-7-23\',2:\'q\',3:\'r.9\'},{0:\'安东尼-戴维斯\',4:\'davis.5\',1:\'1993-7-11\',2:\'i\',3:\'114.8\'},{0:\'乔尔-恩比德\',4:\'embiid.5\',1:\'o-7-16\',2:\'s\',3:\'127.0KG\'},{0:\'克雷-汤普森\',4:\'thompson.5\',1:\'t-u-n\',2:\'198cm\',3:\'97.9\'},{0:\'考瓦伊-莱昂纳德\',4:\'leonard.5\',1:\'1991-d-c\',2:\'201cm\',3:\'102.1KG\'},{0:\'达米安-利拉德\',4:\'lillard.5\',1:\'t-07-15\',2:\'q\',3:\'r.9\'},{0:\'卡梅罗-安东尼\',4:\'anthony.5\',1:\'k-v-c\',2:\'203cm\',3:\'108KG\'},{0:\'尼科拉-约基奇\',4:\'jokic.5\',1:\'w-u-19\',2:\'s\',3:\'128.8\'},{0:\'卡尔-安东尼-唐斯\',4:\'towns.5\',1:\'w-11-15\',2:\'p\',3:\'112.9\'},{0:\'克里斯-保罗\',4:\'paul.5\',1:\'1985-v-d\',2:\'185cm\',3:\'79.l\'},];new Vue({el:\'#app\',data:function(){x{h,a:\'NAhwcEVLEnRoJA7acv6eZGvXWjtijppyHXh\'}},methods:{getToken(y){e a=6.f.z.A(this.a);g{0,1,2,3}=y;e B=6.f.Base64.stringify(6.f.z.A(0));e C=6.DES.encrypt(`${B}${1}${2}${3}`,a,{D:6.D.ECB,padding:6.pad.Pkcs7});x C.toString()}}})', [], 40, 'name|birthday|height|weight|image|png|CryptoJS|03|8KG|5KG|key|1988|29|06|let|enc|const|players|208cm|9KG|1984|4KG|191cm|08|1994|211cm|188cm|88|213cm|1990|02|05|1995|return|player|Utf8|parse|base64Name|encrypted|mode'.split('|'), 0, {}))
console.log(t)
'''
p = Popen(['node'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
out, err = p.communicate(script)
print(err)#依然部分加密

Scrape Center爬虫平台之spa9案例相关推荐

  1. Scrape Center爬虫平台之ssr3案例

    如果是IE浏览器的话,无须输入账号+密码 爬虫的话,要设置好URL 协议://用户名:密码@服务域名或IP:端口号/接口地址?查询参数 以下是正确姿势: import requests import ...

  2. Scrape Center爬虫平台之spa8案例

    #效果太差,爬那么一点点数据就耗时一分钟,还是搞js逆向吧. import time t1=time.time() from selenium import webdriver from seleni ...

  3. Python爬虫之Js逆向案例(6)-某道翻译

    Python爬虫之Js逆向案例(6)-有道翻译 声明:某道翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除 大家好,距离上次分享js逆向案例已经有一个月了,在这期间每次在快要揭秘出来时.整理文章 ...

  4. 数字化教学资源平台网页布局案例

    数字化教学资源平台网页布局案例 例图如下 代码片 下面展示一些 内联代码片. 1.关于HTML页面 <!DOCTYPE html> <html><head>< ...

  5. 如何构建一个通用的垂直爬虫平台?

    阅读本文大约需要15~20分钟. 本文章内容较多,非常干货!如果手机阅读体验不好,建议先收藏后到 PC 端阅读. 之前做爬虫时,在公司设计开发了一个通用的垂直爬虫平台,后来在公司做了内部的技术分享,这 ...

  6. ChainBuilder Connect SOA平台解决方案的案例研究

    Chainbuilder connect 解决令各行业最头痛的服务整合问题 <?xml:namespace prefix = o ns = "urn:schemas-microsoft ...

  7. 现代中小企业IT基础平台建设 - 完整案例实战(00_序)

    前言 随着IT不断发展,它的应用领域也在日新月异的变化和深化,为人与人.人与物.以及物与物之间信息沟通提供了越来越丰富的工具和手段,深刻改变着当今人们的生活和生产方式. 近几年云计算应用的兴起(如:阿 ...

  8. python爬虫数据可视化_适用于Python入门者的爬虫和数据可视化案例

    本篇文章适用于Python小白的教程篇,如果有哪里不足欢迎指出来,希望对你帮助. 本篇文章用到的模块: requests,re,os,jieba,glob,json,lxml,pyecharts,he ...

  9. python爬虫入门 - 代码、案例集合

    python爬虫入门 - 代码.案例集合 资源案例 · 统计 · 如下: 10个Python爬虫入门实例 以上就是关于"python爬虫入门 - 代码.案例集合"的全部内容.

最新文章

  1. loganalyzer部署文档-(第一部分)
  2. 大一计算机课程ppt作业,大学生计算机基础作业PPT.ppt
  3. 北理工 管理系统计算机仿真作业,20秋北理工《CADCAM原理与应用》--模拟3-答案 更…...
  4. html卷轴展开,HTML文本框滚动代码4:卷轴变化应用
  5. 禁用一个计算机用户,系统小技巧:Windows 10账户删除 禁用与启用
  6. Elasticsearch DSL
  7. Java 8 Friday:更多功能关系转换
  8. java 模块开发_java模块化开发
  9. html 点击选择变色,JS实现菜单点击后变色
  10. 2021年PMP考试模拟题4(含答案解析)
  11. 计算机的方差符号怎么输入,【2人回答】标准差的符号在电脑上怎么输入?-3D溜溜网...
  12. H5 img标签图片无法显示 -- 解决方案
  13. ‘VBE6EXT.OLB’ 不能被加载
  14. Termux,安装Aria2 实现BT下载功能
  15. pci规划的三个原则_LTE小区PCI规划原则
  16. 人群密度算法_算法人群的力量。
  17. 学术之声 | 专访邵俊教授:区块链用技术保证在链上说话算话
  18. css3实现爱心图标
  19. 苹果手机怎么连接蓝牙耳机_「科技犬」除了苹果AirPods,真无线蓝牙耳机到底怎么选?_蓝牙耳机...
  20. win7计算机里没有桌面快捷方式,Win7桌面快捷方式图标消失的解决办法

热门文章

  1. java元空间扩容_调整元空间metaspace大小
  2. 知乎热议:21 届校招应届生 Offer 薪资曝光,年薪 35 万+,严重倒挂老员工是互联网行业常态?...
  3. useEffect使用规范
  4. html绘制城堡,搭 建 城 堡
  5. uboot启动流程分析之六
  6. HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序
  7. 【实战】minigpt4的体验和微调
  8. 牛客网《直通BAT面试算法精讲课》优惠码
  9. Golang学习书籍
  10. 转:从ubuntu中文论坛转载的一片超好的文章,慢慢学习中(转)