三分钟了解js2py模块

Python爬虫如何还原JS混淆加密逻辑 JS混淆并非加密,而是代码形态变换,其核心仍是可执行、可调试、可复现的程序逻辑。理解混淆本质(如字符串数组映射、控制流扁平化)是实现Python端精准还原的前提;借助PyExecJS、Js2Py或Selenium桥接JS运行环境,可将浏览器中动态生成的sign、token等参数在服务端稳定复现。该技术广泛应用于电商比价、金融接口、政务系统等需绕过前端校验的真实爬虫场景,关键在于语义级还原而非暴力逆向——尤其当涉及时间戳、Web Crypto或WASM时,必须严格对齐JS行为细节。 阅读详情

1. js2py简介

1.1 在python中的作用

Python中执⾏JS代码,通常两个库:js2py和pyexecjs。
js2py是纯python实现的库,⽤于在python中运⾏js代码,本质上是将js代码翻译成python代码

1.2 安装

pip install js2py

2. js2py的使用

2.1 快速入门
import js2py

a=js2py.eval_js('console.log("hello world")')

func_js="""
function add(a,b){
    return a+b
}
"""
add=js2py.eval_js(func_js)
print(add(2,3))
# 'hello world'
# 5

2.2 js代码翻译

将js文件翻译成python脚本,如下:

import js2py

# 一种,直接在终端翻译
tra=js2py.translate_js('console.log("hello world")')
print(tra)
# 打印结果:
# from js2py.pyjs import *
# # setting scope
# var = Scope( JS_BUILTINS )
# set_global_object(var)

# # Code follows:
# var.registers([])
# var.get('console').callprop('log', Js('hello world'))

# 另一种,建立js文件将其中的内容翻译成python脚本
js2py.translate_file('test.js','test.py')
# 建立一个名为test.js的文件,这里的test.js是文件的相对路径(与该python脚本在同一文件夹),test.py为生成python脚本的文件名

2.3 js代码中使用python函数
import js2py # 导入了一个模块

context = js2py.EvalJs({'python_sum': sum})  # 将python_sum定义为python函数sum

js_code = '''
python_sum([1,2,3])
'''

print('js_code:',context.eval(js_code))
# js_code: 6

web2py Ubuntu一键部署与SSL全链路配置指南 web2py是一种面向生产就绪的Python全栈框架,其核心是内置数据库抽象层(DAL)、自动表单生成(SQLFORM)和开箱即用的用户认证(Auth)系统。它摒弃传统‘配置驱动’模式,采用‘约定优于配置’原则,大幅降低Web开发基础设施复杂度。在Ubuntu系统中,通过apt原生安装、Rocket内置服务器与Nginx反向代理协同,可实现HTTPS零配置集成——仅需指定ssl_certificate路径即可启用TLS 1.2+及HTTP强制跳转。该框架特别适合快速原型开发、政府基层系统、IoT数据平台等对 阅读详情

相关推荐

爬虫:一文掌握 js2py 的详细使用(Python 环境中执行 JavaScript 代码)

js2py 是一个用于在 Python 环境中执行 JavaScript 代码的库。它允许你在不依赖浏览器的情况下,直接在 Python 中运行 JavaScript 脚本。这在处理需要执行 JavaScript 的网页爬虫时特别有用,尤其是当目标网站使用了大量的客户端 JavaScript 来动态加载内容时。js2py 是一个强大的工具,可以在 Python 环境中执行 JavaScript 代码,方便进行网页爬虫、自动化测试等任务。

数据知道的博客 1万+

爬虫之js2py的使用

爬虫之js2py的使用 在知道了js如何生成我们想要的数据之后,那么接下来我们就需要使用程序获取js执行之后的结果了 1.1 js2py的介绍 js2py是一个js的翻译工具,也是一个通过纯python实现的js的解释器 1.2 js的执行思路 js的执行方式大致分为两种: 在了解了js内容和执行顺序之后,通过python来完成js的执行过程,得到结果 在了解了js内容和执行顺序之后,使用类似js2py的模块来执js代码,得到结果 但是在使用python程序实现js的执行时候,需要观察的j

IT之一小佬的博客 7231

Abaqus中使用Python提取裂缝数据并用matplotlib库绘图

ABAQUS后处理PYTHON二次开发代码:提取裂缝数据并用matplotlib库绘图

qq_42568527的博客 3470

爬虫 第四讲 js2py和selenium

爬虫 第四讲 selenium 一、selenium的使用 1.爬虫和反爬虫的斗争 爬虫建议 尽量减少请求次数 保存获取到的HTML,供查错和重复使用 关注网站的所有类型的页面 H5页面 APP 多伪装 代理IP 随机请求头 利用多线程分布式 在不被发现的情况下我们尽可能的提高速度 2.ajax基本介绍 动态了解HTML技术 JS 是网络上最常用的脚本语言,它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页 jQuery jQuery是一个快速、简介的JavaS

yangyusir的博客 5万+

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章()介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

汽车ECU自动化测试 1764

python运行js代码解决方案之js2py库

在日常使用Python做爬虫,一般会用到以下手段: 请求URL,返回HTML文本,然后通过xpath、css或者re,提取数据 有些网页的数据通过AJAX异步请求加载,此时找到对应的接口,调用并直接使用接口返回的数据 有时候如果网站反爬或安全机制比较高时,则会做一些验证或者加密,比如cookie内必须携带token等信息,而这些信息是通过混淆过的js代码计算得出的。 针对1,应该是爬取大多数没有任何安全机制并且是静态网页时,常用手段,而2是提取数据最为快速的,但是接口并不是总是返回我们最喜欢的json

yifengchaoran的专栏 13万+

(一)ANSYS WORKBENCH实践入门

ANSYS-workbench 有限元分析应用基础教程 (张晔)学习笔记

qq_51767372的博客 1万+

Python中使用 JS2Py 库执行 JavaScript 函数

需要注意的是,JS2Py 在执行 JavaScript 函数时,会将 JavaScript 代码编译为 Python 代码。因此,执行效率可能不如 PyExecJS。但由于 JS2Py 将 JavaScript 编译为 Python 代码后,可以直接在 Python 中调用 JavaScript 函数,因此比较方便。上面的代码中,我们首先读取了 test.js 文件中的 JavaScript 函数,并使用 JS2Py 编译该函数。最后输出结果为 6,说明成功执行了 JavaScript 函数。

码农桃子的博客 1661

Ansys EMC Plus:用于仿真屏蔽效果的一键式工作流程

在 EMA3D 选项卡下,单击 Shielding Effectiveness 按钮下方的箭头以访问设置并使用所需数量的分割数启动工作流程,这些分割数定义了网格大小。在此示例中,设置了 35 个分段,提供了良好的 FDTD 网格,同时保持了较短的仿真运行时间。接下来,选择默认的平面波源文件,然后选择所需的分析方向。您还可以查看和调整仿真树中的仿真参数,包括定义最低和最高频率值的解域、入射平面波的极化以及探针设置。您可以控制屏蔽效果图设置,并以线性比例显示结果。仿真完成后,软件将绘制与频率相关的屏蔽效果图。

jkh920184196的博客 872

【C#程序员入门AI】向量数据库入门:C#集成Chroma/Pinecone,实现AI知识库检索(RAG基础)

向量存语义,检索补知识!向量数据库:解决AI知识库存储和语义检索问题,让AI有据可查C#集成:Chroma轻量本地练手,Pinecone企业云端落地,一套逻辑无缝切换RAG闭环:检索+大模型,让AI回答精准不瞎编,是AI落地的必经之路咱C#程序员有.NET生态加持,集成向量数据库比Python更简洁、更稳定,不管是个人做智能助手,还是企业做知识库,这套技术栈都能直接落地,2026年必学技能!

人工智能AI技术 1002

为什么py-xiaozhi是改变游戏规则的智能语音助手?

还在为智能家居设备需要昂贵的专用硬件而烦恼吗?还在为不同语音助手无法跨平台使用而困扰吗?py-xiaozhi项目带来了全新的解决方案——一个完全开源、跨平台、功能强大的智能语音助手框架,让你用普通电脑就能拥有媲美专业硬件的AI语音交互体验。 想象一下,只需要一台普通的Windows、macOS或Linux电脑,甚至是一个树莓派,你就能搭建起属于自己的智能语音助手。无论是查询天气、播放音乐、控制智

gitblog_00959的博客 714

Open-AutoGLM 实战:手把手教你用 AI 操作手机「喂饭教程」

Open-AutoGLM 是一个由智谱AI开源的手机操作智能体框架,由手机端智能助手框架Phone Agent和9B大小的模型AutoGLM-Phone-9B组成,借助ADB自动执行点击、滑动、输入等操作——用户只需用自然语言描述任务,系统便能自动规划并完成整个操作流程。

blues_C的博客 1267

django 集成个推_三分钟带你了解“Django从0到1”

这几年,Python简直火到了天际,连房产大佬潘石屹都入坑了,看来Python还真是个毫无门槛的编程语言。Python是名副其实的胶水语言,它的强大是因为拥有超丰富的库和框架,可以应用于Web开发、GUI开发、爬虫、数据分析、移动端开发等等,只有你想不到的,没有它做不到的。本文将带你了解“Django从0到1的过程”,手把手教你如何开发一个Django项目。Django简介Python下有许多款不...

weixin_29079743的博客 146

Python爬虫教程:如何爬取多平台电商商品信息(价格、评价、库存)

本文介绍了如何编写一个跨平台电商商品爬虫,爬取多个平台的商品信息,包括商品名称、价格、评价等数据。通过Python的爬虫库(如requestsSelenium)和数据处理库(如pandasmatplotlib)的结合,我们可以高效地获取和分析电商平台上的商品信息。

2201_76125261的博客 917

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Docker Desktop中文界面改造:三分钟告别英文操作障碍

对于众多中国开发者而言,Docker Desktop的英文界面一直是技术学习过程中的一道隐形门槛。每次启动容器、管理镜像、配置网络时,都需要在脑海中进行语言转换,这种额外的认知负担让开发效率大打折扣。DDCS(Docker Desktop Chinese Script)项目应运而生,这是一个专门为中文用户打造的Docker Desktop界面汉化解决方案,通过智能脚本技术实现界面文本的精准本地化,

gitblog_01070的博客 266

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Diff Checker:三分钟掌握跨平台文本差异对比工具

在日常工作中,你是否经常需要对比两个文档的差异?无论是代码版本变更、文档修订记录,还是配置文件的调整,Diff Checker 这款免费的桌面应用程序都能帮你快速准确地找出文本差异。作为一款支持 Windows、Mac 和 Linux 三大操作系统的文本差异对比工具,它让文件比对变得前所未有的简单高效。 ## 为什么你需要专业的文本对比工具? 传统的人工比对方法不仅耗时耗力,还容易遗漏关键差异

gitblog_01055的博客 482

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NW.js应用打包分发终极指南:从开发到部署的完整流程

想要将你的HTML5+Node.js桌面应用打包成专业软件吗?NW.js提供了完整的跨平台桌面应用打包解决方案,让Web开发者也能轻松创建独立的桌面应用程序。本文将为你提供一份完整的NW.js应用打包分发指南,涵盖从基础配置到高级优化的全流程。 ## 🚀 快速入门:三分钟完成基础打包 ### 1. 准备工作:应用资源整理 在开始打包前,确保你的应用已经准备就绪: - 所有源代码和资源文件已整

gitblog_07614的博客 523

Windows Cleaner终极指南:三分钟解决C盘爆红的开源清理神器

你是否正在为Windows系统C盘空间不足而烦恼?每次看到红色警告都感到焦虑,系统运行越来越慢,程序频繁卡顿,甚至无法安装重要更新?Windows Cleaner正是为解决这些痛点而生的开源系统清理工具。这款基于Python开发的Windows系统优化软件,通过智能算法和现代化界面,帮助你快速释放磁盘空间、优化内存使用,让系统恢复流畅运行状态。 ## 🩺 问题诊断:你的Windows为什么越来

gitblog_01177的博客 248

Android 系统证书迁移完整指南:MoveCertificate 让抓包证书快速生效

如果你在 Android 抓包时 App 一直抛 `SSLHandshakeException`,而证书明明出现在「设置 → 信任的凭据 → 用户」里,那问题出在证书信任区,不在证书本身。MoveCertificate 是面向 Android 7–16 的模块,把用户证书迁移进系统信任区(`/system/etc/security/cacerts/`),兼容 Magisk v20.4+、Kerne

gitblog_00274的博客 187

Limo如何解决MOD文件冲突:冲突组机制与按冲突自动排序加载顺序详解

**Limo** 是一款基于 Qt 的轻量级 MOD 管理器(MOD Manager),专为 Linux 打造。当两个 MOD 修改了同一个游戏文件时,就产生了 **MOD 文件冲突**;Limo 通过 **冲突组(Conflict Groups)** 机制自动识别冲突,并支持 **按冲突自动排序加载顺序**,让后加载的 MOD 覆盖先加载的 MOD,从而快速、直观地解决冲突问题。 ## 为什么

gitblog_00382的博客 202

如何三分钟把抖音评论导出成 Excel:抖音评论采集全程不写代码

我做运营这几年,每周都要重复一件事:把竞品视频的抖音评论采集下来,整理成能分析的表。以前手动滚屏、逐条复制、再排版,一条大视频耗掉大半个下午;后来我换成 TikTokCommentScraper 这个开源工具,两千多条评论从跑脚本到拿到 Excel 只要几分钟。它会在浏览器里自动往下滚、自动点开二级回复,你全程不写一行代码,只负责盯着页面自己动。 ## 📋 先看对比:它到底替你省了多少活 一

gitblog_01196的博客 153

使用 Xberg Java 绑定提取 DOCX 文档文本:Smoke 测试实战与源码剖析

本篇技术指南围绕 xberg 仓库中 Java 语言的 DOCX 冒烟测试(Smoke Test)展开,完整解析如何通过 `io.xberg` 包的类型安全 API 从 `.docx` 文档中提取正文与 MIME 元数据。读完本文,你将掌握 `ExtractInput` / `ExtractionConfig` / `Xberg.extract()` / `ExtractionResult` 的调

gitblog_01021的博客 415

三分钟跑通抖音直播数据抓取:DouyinLiveWebFetcher WebSocket 原理拆解

直播运营想知道是哪句话带起了礼物高峰,数据分析师想给弹幕做词频统计,但数据并不在你直接轮询的接口里,而是藏在直播间那条 WebSocket 长连接后面。DouyinLiveWebFetcher 就是为此做的抖音直播数据抓取工具,它逆向的是网页版直播间的长连接协议,main.py 里三行代码就能收到实时弹幕。 ## 它到底能抓到什么 这个项目抓的是单个网页版直播间的实时弹幕流,覆盖 10 多种消

gitblog_00401的博客 298

三分钟用 webapp-testing 跑通你的第一条 Playwright Web 自动化测试

每次改完页面都要手动打开浏览器点一遍吗?这种重复验证的代价其实很高。不妨把这件事交给 Playwright 测试:webapp-testing 就是一个面向 Web 应用自动化测试的工具包,用一份 Playwright 脚本就能完成前端功能验证、UI 行为调试、浏览器截图捕获和查看浏览器日志。 [![webapp-testing Playwright Web 应用测试自动化示意图](https:

gitblog_00188的博客 237

GetQzonehistory:三分钟完成QQ空间数据备份的Python开源工具指南

你是否还记得十年前在QQ空间写下的第一条说说?那些记录青春岁月的心情随笔、与好友互动的温馨留言、见证成长的珍贵照片,都是无法复制的数字记忆。然而,随着时间流逝,这些记忆可能因为账号异常、平台限制或数据丢失而永远消失。今天,我要向你介绍一个简单而强大的解决方案——GetQzonehistory,一个专为保存QQ空间记忆而生的Python开源工具,让你在短短三分钟内完成QQ空间数据备份,将那些珍贵的数

gitblog_01082的博客 793
上一篇: 爬虫入门(五)——BeautifulSoup4
下一篇: 爬虫入门(六)——Scrapy框架初探
北木x
博客等级 码龄7年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值