欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中PyExecJS(執(zhí)行JS代碼庫)的具體使用

 更新時(shí)間:2024年02月29日 08:35:07   作者:小oo呆  
pyexecjs是一個(gè)用Python來執(zhí)行JavaScript代碼的工具庫,本文主要介紹了Python中PyExecJS(執(zhí)行JS代碼庫)的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下

一、pyexecjs庫是什么?

pyexecjs是一個(gè)用Python來執(zhí)行JavaScript代碼的工具庫,該庫支持多種JavaScript運(yùn)行時(shí)環(huán)境,如Node.js、PhantomJS、SlimerJS等,允許開發(fā)者在Python中無縫地調(diào)用和執(zhí)行JavaScript代碼。

二、常見使用場景

在Web爬蟲開發(fā)或者處理JavaScript加密內(nèi)容的場景下,pyexecjs尤為有用,例如當(dāng)網(wǎng)頁中的數(shù)據(jù)是通過JavaScript動(dòng)態(tài)加載或加密時(shí),可以直接在Python程序中執(zhí)行JavaScript函數(shù)來獲取或解密這些數(shù)據(jù)。

二、pyexecjs庫怎么用?

# 安裝
pip install pyexecjs

(1)execjs必學(xué)方法eval

import execjs

# 必須掌握的函數(shù)之一 eval(expression)
"""
功能:如果你沒有特定的JavaScript文件,而是想直接執(zhí)行給定的JavaScript表達(dá)式代碼時(shí)使用(使用內(nèi)置運(yùn)行時(shí))
參數(shù):expression是要執(zhí)行的JavaScript字符串表達(dá)式。
返回值:js執(zhí)行結(jié)果。
"""
e = execjs.eval('a = new Array(1,2,3)')
print(e)

(2)execjs必學(xué)方法complie

import execjs

# 必須掌握的函數(shù)之二 compile()
"""
功能:用于編譯JavaScript代碼,創(chuàng)建一個(gè)可執(zhí)行的上下文。這個(gè)上下文可以用來執(zhí)行預(yù)編譯好的JavaScript表達(dá)式或函數(shù)
參數(shù):source必填參數(shù),類型為字符串,表示要編譯的JavaScript代碼。
返回值:返回一個(gè)execjs.Context對象實(shí)例,該實(shí)例擁有eval、call等方法,可以用來執(zhí)行JavaScript代碼并獲取結(jié)果
"""

# 可以直接編譯一段js片段
js_code1 = """

function add(a, b) {
    return a + b;
}
"""

# 可以編譯一個(gè)js文件
with open('test.js', 'r') as f:
    js_code2 = f.read()


# 編譯js代碼
ctx1 = execjs.compile(js_code1)
result = ctx1.call("add", 1, 2)
print(result)

ctx2 = execjs.compile(js_code2)
result = ctx2.call("add", 1, 2)
print(result)

(3)execjs必學(xué)方法call

import execjs


# 必須掌握的函數(shù)之二 call(function_name, *args, **kwargs)
"""
功能:調(diào)用在JavaScript環(huán)境中定義的函數(shù),并將Python變量作為參數(shù)傳入給這個(gè)JavaScript函數(shù)。
參數(shù):
    - function_name:字符串類型,表示要調(diào)用的JavaScript函數(shù)名。
    - *args:可變位置參數(shù)列表,這些參數(shù)會被轉(zhuǎn)換并作為對應(yīng)的JavaScript函數(shù)的參數(shù)傳入。
    - **kwargs:可變關(guān)鍵字參數(shù)字典,這些參數(shù)同樣會被轉(zhuǎn)換后作為JavaScript函數(shù)的命名參數(shù)傳入。
返回值:返回執(zhí)行JavaScript函數(shù)后的結(jié)果。這個(gè)結(jié)果可以是任何JavaScript數(shù)據(jù)類型,在Python端通常會被轉(zhuǎn)換為相應(yīng)的Python類型(例如,JavaScript對象會被轉(zhuǎn)換為Python字典等)。
"""
# js代碼片段
js_code = """

function add(a, b) {
    return a + b;
}
"""

# 創(chuàng)建并編譯js上下文
ctx = execjs.compile(js_code)

# 使用call方法來調(diào)用js代碼中的函數(shù)
result = ctx.call('add', 10, 2)
print(result)

到此這篇關(guān)于Python中PyExecJS(執(zhí)行JS代碼庫)的具體使用的文章就介紹到這了,更多相關(guān)PyExecJS使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • numpy實(shí)現(xiàn)合并多維矩陣、list的擴(kuò)展方法

    numpy實(shí)現(xiàn)合并多維矩陣、list的擴(kuò)展方法

    今天小編就為大家分享一篇numpy實(shí)現(xiàn)合并多維矩陣、list的擴(kuò)展方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python 實(shí)現(xiàn)Serial 與STM32J進(jìn)行串口通訊

    Python 實(shí)現(xiàn)Serial 與STM32J進(jìn)行串口通訊

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)Serial 與STM32J進(jìn)行串口通訊,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python sorted函數(shù)詳解(高級篇)

    Python sorted函數(shù)詳解(高級篇)

    本文我們用到了sorted 如何進(jìn)行按照鍵或者值進(jìn)行排序,解決了字典的排序問題。文中將進(jìn)一步詳細(xì)介紹sorted的強(qiáng)大。希望對大家有所幫助
    2018-09-09
  • pytorch簡介

    pytorch簡介

    Pytorch是torch的python版本,是由Facebook開源的神經(jīng)網(wǎng)絡(luò)框架,專門針對 GPU 加速的深度神經(jīng)網(wǎng)絡(luò)(DNN)編程。這篇文章給大家介紹pytorch的相關(guān)知識,感興趣的朋友一起看看吧
    2020-11-11
  • python requests指定出口ip的例子

    python requests指定出口ip的例子

    今天小編就為大家分享一篇python requests指定出口ip的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    飛機(jī)大戰(zhàn)想必大家可能玩過微信的這款小游戲,給我的感覺是這款游戲怎么可以做得這么好呢,操作簡單,容易上手,簡直是“老少皆宜”啊,既然這款游戲這么棒,能否自己動(dòng)手用 Python 來實(shí)現(xiàn)呢?事實(shí)證明是可以的
    2022-09-09
  • python網(wǎng)絡(luò)爬蟲 Scrapy中selenium用法詳解

    python網(wǎng)絡(luò)爬蟲 Scrapy中selenium用法詳解

    這篇文章主要介紹了python網(wǎng)絡(luò)爬蟲 Scrapy中selenium用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值
    2019-09-09
  • Python下載手機(jī)小視頻的操作方法

    Python下載手機(jī)小視頻的操作方法

    這篇文章主要介紹了Python 下載手機(jī)小視頻,主要為大家介紹使用 mitmproxy 這個(gè)抓包工具如何監(jiān)控手機(jī)上網(wǎng),并且通過抓包,把我們想要的數(shù)據(jù)下載下來,需要的朋友可以參考下
    2022-04-04
  • 實(shí)例詳解Python的進(jìn)程,線程和協(xié)程

    實(shí)例詳解Python的進(jìn)程,線程和協(xié)程

    這篇文章主要為大家詳細(xì)介紹了Python進(jìn)程,線程和協(xié)程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python上下文管理器類和上下文管理器裝飾器contextmanager用法實(shí)例分析

    Python上下文管理器類和上下文管理器裝飾器contextmanager用法實(shí)例分析

    這篇文章主要介紹了Python上下文管理器類和上下文管理器裝飾器contextmanager用法,結(jié)合實(shí)例形式分析了上下文管理器類定義、使用、sqlalchemy實(shí)現(xiàn)數(shù)據(jù)庫的自動(dòng)提交和回滾相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評論