Python代码调用JS函数

采集过程中,遇到了一个token是经过JS加密生成的,于是乎进行JS断点追踪,生成了完整的生成token值的JS函数文件。

这个JS函数需要在Python代码中调用,通过输入一个参数,然后会输出一个token值。

所需模块:

  pip install pyexecjs

  注意:这里安装的模块叫:pyexecjs, 但是调用的时候的名字是:execjs

具体调用步骤:

# -*- coding: utf-8 -*-

import execjs

def get_js():
    # f = open("./../js/my.js", ‘r‘, encoding=‘utf-8‘) # 打开JS文件
    f = open("tongchengJS.js", ‘r‘, encoding=‘utf-8‘) # 打开JS文件
    line = f.readline()
    htmlstr = ‘‘
    while line:
        htmlstr = htmlstr+line
        line = f.readline()
    return htmlstr

def get_des_psswd(e):
    js_str = get_js()
    ctx = execjs.compile(js_str) #加载JS文件
    return (ctx.call(‘antitoken‘, e))  #调用js方法  第一个参数是JS的方法名,后面的data和key是js方法的参数

if __name__ == ‘__main__‘:
    print(get_des_psswd(e=‘1570243707293‘))

参考:https://www.cnblogs.com/linlang781/p/8868496.html

原文地址:https://www.cnblogs.com/yuanyongqiang/p/11625245.html

时间: 2024-09-29 21:08:18

Python代码调用JS函数的相关文章

VC与JavaScript交互(二) ———— 调用JS函数

这一章,我们来动手实践VC调用JS函数. 我们动手写一个HTML,其中包含这样一段JS代码: [html] view plaincopy <script type="text/javascript"> function Add(value1, value2) { return value1 + value2; } </script> 然后我们用WebBrowser加载这个HTML后,在VC中这样来调用这个函数名为Add的JS函数: [cpp] view plai

JAVA调用JS函数

今天在开发中使用到了js和Java的交互,平时我们用的比较多的就是js调用Java的方法,可以使用dwr.Ajax.jquery.突然发现要Java调用js的话还真没有见过,今天上网查询了下资料,顺便总结一下: 前提条件:jdk1.6才支持,1.6以前的就不行了. js代码如下: function convert (id,str) { if ('505041'==id) { return str; } else { return "A"; } } Java代码如下: package c

C++通过V8调用js函数

现在写个函数,在C++中调用js函数, int V8_Manager::js_load_player_data(Block_Buffer *buf) { //执行V8代码前,必须先进入V8的Isolate,初始化V8运行环境 Isolate::Scope isolate_scope(isolate_); HandleScope handle_scope(isolate_); Local<Context> context = Local<Context>::New(isolate_,

服务器控件调用JS函数

是服务器端控件,不能在JS里直接调用,但可以在aspx.cs 里写方法可以调用JS函数,比如JS方法名称是check(), function check() {   alert(document.getElementById("ltr1").value); } 在a.aspx  <asp:Literal ID="ltr1" runat="server" > </asp:Literal> <asp:Button ID=

在COM组件中调用JS函数

要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度.这就要求使用回调函数,设其名称为scriptCallbackFunc.实现这个技术很简单: 1 .组件方(C++) 组件A 的方法在IDL中定义: [id(2)] HRESULT longCalc([in] DOUBLE v1, [in] DOUBLE v2, [in, optional] VARIANT scriptCallback);

Java中通过脚本引擎调用js函数

1 import java.io.*; 2 import javax.script.Invocable; 3 import javax.script.ScriptEngine; 4 import javax.script.ScriptEngineManager; 5 import javax.script.ScriptException; 6 import org.slf4j.Logger; 7 import org.slf4j.LoggerFactory; 8 import com.ppcre

JavaScript基础 超链接调用js函数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

V8系列之C++调用js函数

下面写个程序,用来演示在C++中通过V8调用js函数 int js_load_data(char *buf) { //声明v8虚拟机 Isolate* isolate; //进入v8虚拟机内部,初始化v8运行环境 Isolate::Scope isolate_scope(isolate); //创建句柄集合 HandleScope handle_scope(isolate); //创建v8运行上下文 Local<ObjectTemplate> global = ObjectTemplate::

python selenium --调用js

转自:http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步执行javaScript 脚本:JavaScript的执行. *参数:适用任何JavaScript脚本. 使用: driver.execute_script(‘document.title’) 使快播登陆用户名输入框标红显示: #coding=utf-8 from selenium import w