Python库中可以操作JavaScript盘点解析

 更新时间:2023年06月26日 11:51:57   作者:lrene181  
这篇文章主要为大家介绍了Python库之可以操作JavaScript盘点解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

我们都知道Python可以很轻松的实现某些功能,而且还可以编写网页,比如Remi,Pysimplegui,但是操作JavaScript这种浏览器的脚本语言,还是第一次听说,小编也是第一次听说,于是就跟大家脑补这一知识。

一、PyExecJS

是一个可以执行JavaScript脚本的Python模块,可以与网页上的JavaScript进行交互,这样就能更加精准的获取到网页中的加密内容,如果用Python中的网络模块进行请求,会无法解密文档中的加密内容,这个时候使用我们的PyExecJS可以很方便到的解密网页中的加密内容,当然这得你会Js逆向才可以。

不过要想PyExecJS解析JS语句没毛病,还得整个Js语言解析环境,这里推荐NodeJS,尴尬。我们来看下PyExecJs的用法:

1.常规操作

import execjs
aa=execjs.eval("'one|two|three'.split('|')") #执行JavaScript代码,将字符串分割形成数组
print(aa) 
e=execjs.compile('''     #编译一个表达式
function add(x,y){
  return x+y;
}
''')
print(e.call('add',10,20))#调用编译好的函数并且赋值

也可以通过获取引擎来运行我们的语句,如下:

print(execjs.get().eval('1+1'))

2.查看解释引擎

print(execjs.get().name)

这里JavaScript的解释引擎是JScript,我们还可以使用自己指定给力的引擎,比如“Nodejs”。

3.指定引擎

import execjs
import os
os.environ["EXECJS_RUNTIME"] = "Node"
print(execjs.get().name)

也可以手动指定引擎,如下:

js1=execjs.get(execjs.runtime_names.JScript)
print(js1.eval('1'))
js2=execjs.get(execjs.runtime_names.Node)
print(js2.eval('2'))

二、Js2Py

这个我觉得算是比较好的了,可以说是一个综合体,它不需要依赖别的环境,可以独立运行Js文件,只不过它的运行速度可能会稍微慢一点而已,但是这都不叫事。下面我们来看看它有哪些神器的功能吧。

1.常规操作,必须的

2.循环遍历

import js2py
aa=js2py.eval_js(
'''
var i=0;
for(var c=1;c<6;c++){
console.log(c);
}
'''
)
print(aa)

3.读取Js文件

我们可以把JS文件写入文件中,以便我们进行调用,如下:

1.js

function f(aa){
    if(aa>11){
        console.log('OK')
    }else{
        console.log('Fail')
  }
}

Python文件

import js2py
with open('1.js','r') as f:
    aa=js2py.eval_js(f.read())
    print(aa(11))

4.爬取网站数据

这里我们以淘宝为主,我想整它的JS脚本文件,如下:

import execjs
import requests
import re
url = 'https://ai.taobao.com/?pid=mm_26632323_6762370_25910879'
res=requests.get(url).text
js=re.findall(r'<script>(.*?)</script>',res)
print(js,'\n')
js1=re.sub(r'eval\(','return(',js[0])
html="function getLego2WPK(){" + js1 + "};"
ctx = execjs.compile(html)
temp = ctx.call('getLego2WPK')
print(temp)

三、PyV8

基于Google的V8引擎打造,遗憾的是目前只支持Python2版本,而且已不再维护,建议Python2的小伙伴可以去试试。

四、总结

本文主要盘点了3个可以操作JavaScript的Python库,分别是PyExecJS、Js2Py和PyV8,只要我们用好了这些模块以后玩爬虫就能更加技高一筹,并且准确率更高了,更多关于Python库操作JavaScript的资料请关注脚本之家其它相关文章!

相关文章

  • 关于Python中compile() 函数简单实用示例详解

    关于Python中compile() 函数简单实用示例详解

    这篇文章主要介绍了关于compile() 函数简单实用示例,compile() 函数将一个字符串编译为字节代码,compile将代码编译为代码对象,应用在代码中可以提高效率,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python Dask库处理大规模数据集的强大功能实战

    Python Dask库处理大规模数据集的强大功能实战

    Dask是一个灵活、开源的Python库,专为处理大规模数据集而设计,与传统的单机计算相比,Dask能够在分布式系统上运行,有效利用集群的计算资源,本文将深入介绍Dask的核心概念、功能和实际应用,通过丰富的示例代码展示其在大数据处理领域的强大能力
    2023-12-12
  • Python的f格式使用及说明

    Python的f格式使用及说明

    Python 3.6引入的f-string通过在字符串前加f,直接嵌入变量或表达式,使代码更直观简洁,相比传统格式化方法,其优势在于高效、灵活,支持动态计算和数字格式化,成为现代Python推荐的字符串处理方式
    2025-09-09
  • Python新手必读bytearray对象使用技巧掌握

    Python新手必读bytearray对象使用技巧掌握

    Python中的bytearray是一个可变序列,通常用于存储二进制数据,它允许在不创建新的对象的情况下就地修改数据,非常适用于处理字节数据,本文将深入学习bytearray对象的使用,包括创建、修改、切片和常见应用场景
    2023-12-12
  • 人脸识别经典算法一 特征脸方法(Eigenface)

    人脸识别经典算法一 特征脸方法(Eigenface)

    这篇文章主要为大家详细介绍了人脸识别经典算法一,特征脸方法Eigenface,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 基于Python实现智能聊天机器人的完整代码

    基于Python实现智能聊天机器人的完整代码

    本文基于Python语言搭建一款轻量级本地智能聊天机器人,无需依赖第三方付费接口,依靠基础自然语言匹配逻辑实现人机对话功能,案例代码简洁易懂、可直接运行,需要的朋友可以参考下
    2026-05-05
  • 使用Python实现一个简单实用的文本词频统计分析工具

    使用Python实现一个简单实用的文本词频统计分析工具

    文本分析是自然语言处理(NLP)中的基础任务,而词频统计则是文本分析的入门级应用,本文就来为大家介绍如何实现一个简单而实用的文本词频统计工具吧,非常适合Python初学者练手
    2025-05-05
  • pandas中DataFrame排序及分组排序的实现示例

    pandas中DataFrame排序及分组排序的实现示例

    本文主要介绍了pandas中DataFrame排序及分组排序,pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,下面就来具体介绍一下,感兴趣的可以了解一下
    2024-04-04
  • Windows直接运行python程序的两种方法

    Windows直接运行python程序的两种方法

    本文主要介绍了Windows直接运行python程序,包括新建bat脚本和新建vbs脚本,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • python在linux中输出带颜色的文字的方法

    python在linux中输出带颜色的文字的方法

    这篇文章主要介绍了python在linux中输出带颜色的文字的方法,仅在Linux系统中有效果,一般输出在控制台中,本文用在日志环节,方便测试,需要的朋友可以参考下
    2014-06-06

最新评论