最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python庫中可以操作JavaScript盤點解析

 更新時間:2023年06月26日 11:51:57   作者:lrene181  
這篇文章主要為大家介紹了Python庫之可以操作JavaScript盤點解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

我們都知道Python可以很輕松的實現(xiàn)某些功能,而且還可以編寫網(wǎng)頁,比如Remi,Pysimplegui,但是操作JavaScript這種瀏覽器的腳本語言,還是第一次聽說,小編也是第一次聽說,于是就跟大家腦補這一知識。

一、PyExecJS

是一個可以執(zhí)行JavaScript腳本的Python模塊,可以與網(wǎng)頁上的JavaScript進行交互,這樣就能更加精準(zhǔn)的獲取到網(wǎng)頁中的加密內(nèi)容,如果用Python中的網(wǎng)絡(luò)模塊進行請求,會無法解密文檔中的加密內(nèi)容,這個時候使用我們的PyExecJS可以很方便到的解密網(wǎng)頁中的加密內(nèi)容,當(dāng)然這得你會Js逆向才可以。

不過要想PyExecJS解析JS語句沒毛病,還得整個Js語言解析環(huán)境,這里推薦NodeJS,尷尬。我們來看下PyExecJs的用法:

1.常規(guī)操作

import execjs
aa=execjs.eval("'one|two|three'.split('|')") #執(zhí)行JavaScript代碼,將字符串分割形成數(shù)組
print(aa) 
e=execjs.compile('''     #編譯一個表達(dá)式
function add(x,y){
  return x+y;
}
''')
print(e.call('add',10,20))#調(diào)用編譯好的函數(shù)并且賦值

也可以通過獲取引擎來運行我們的語句,如下:

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

這個我覺得算是比較好的了,可以說是一個綜合體,它不需要依賴別的環(huán)境,可以獨立運行Js文件,只不過它的運行速度可能會稍微慢一點而已,但是這都不叫事。下面我們來看看它有哪些神器的功能吧。

1.常規(guī)操作,必須的

2.循環(huán)遍歷

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

3.讀取Js文件

我們可以把JS文件寫入文件中,以便我們進行調(diào)用,如下:

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.爬取網(wǎng)站數(shù)據(jù)

這里我們以淘寶為主,我想整它的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的小伙伴可以去試試。

四、總結(jié)

本文主要盤點了3個可以操作JavaScript的Python庫,分別是PyExecJS、Js2Py和PyV8,只要我們用好了這些模塊以后玩爬蟲就能更加技高一籌,并且準(zhǔn)確率更高了,更多關(guān)于Python庫操作JavaScript的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于Python中compile() 函數(shù)簡單實用示例詳解

    關(guān)于Python中compile() 函數(shù)簡單實用示例詳解

    這篇文章主要介紹了關(guān)于compile() 函數(shù)簡單實用示例,compile() 函數(shù)將一個字符串編譯為字節(jié)代碼,compile將代碼編譯為代碼對象,應(yīng)用在代碼中可以提高效率,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python Dask庫處理大規(guī)模數(shù)據(jù)集的強大功能實戰(zhàn)

    Python Dask庫處理大規(guī)模數(shù)據(jù)集的強大功能實戰(zhàn)

    Dask是一個靈活、開源的Python庫,專為處理大規(guī)模數(shù)據(jù)集而設(shè)計,與傳統(tǒng)的單機計算相比,Dask能夠在分布式系統(tǒng)上運行,有效利用集群的計算資源,本文將深入介紹Dask的核心概念、功能和實際應(yīng)用,通過豐富的示例代碼展示其在大數(shù)據(jù)處理領(lǐng)域的強大能力
    2023-12-12
  • Python的f格式使用及說明

    Python的f格式使用及說明

    Python 3.6引入的f-string通過在字符串前加f,直接嵌入變量或表達(dá)式,使代碼更直觀簡潔,相比傳統(tǒng)格式化方法,其優(yōu)勢在于高效、靈活,支持動態(tài)計算和數(shù)字格式化,成為現(xiàn)代Python推薦的字符串處理方式
    2025-09-09
  • Python新手必讀bytearray對象使用技巧掌握

    Python新手必讀bytearray對象使用技巧掌握

    Python中的bytearray是一個可變序列,通常用于存儲二進制數(shù)據(jù),它允許在不創(chuàng)建新的對象的情況下就地修改數(shù)據(jù),非常適用于處理字節(jié)數(shù)據(jù),本文將深入學(xué)習(xí)bytearray對象的使用,包括創(chuàng)建、修改、切片和常見應(yīng)用場景
    2023-12-12
  • 人臉識別經(jīng)典算法一 特征臉方法(Eigenface)

    人臉識別經(jīng)典算法一 特征臉方法(Eigenface)

    這篇文章主要為大家詳細(xì)介紹了人臉識別經(jīng)典算法一,特征臉方法Eigenface,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于Python實現(xiàn)智能聊天機器人的完整代碼

    基于Python實現(xiàn)智能聊天機器人的完整代碼

    本文基于Python語言搭建一款輕量級本地智能聊天機器人,無需依賴第三方付費接口,依靠基礎(chǔ)自然語言匹配邏輯實現(xiàn)人機對話功能,案例代碼簡潔易懂、可直接運行,需要的朋友可以參考下
    2026-05-05
  • 使用Python實現(xiàn)一個簡單實用的文本詞頻統(tǒng)計分析工具

    使用Python實現(xiàn)一個簡單實用的文本詞頻統(tǒng)計分析工具

    文本分析是自然語言處理(NLP)中的基礎(chǔ)任務(wù),而詞頻統(tǒng)計則是文本分析的入門級應(yīng)用,本文就來為大家介紹如何實現(xiàn)一個簡單而實用的文本詞頻統(tǒng)計工具吧,非常適合Python初學(xué)者練手
    2025-05-05
  • pandas中DataFrame排序及分組排序的實現(xiàn)示例

    pandas中DataFrame排序及分組排序的實現(xiàn)示例

    本文主要介紹了pandas中DataFrame排序及分組排序,pandas中的sort_values()函數(shù)原理類似于SQL中的order by,可以將數(shù)據(jù)集依照某個字段中的數(shù)據(jù)進行排序,下面就來具體介紹一下,感興趣的可以了解一下
    2024-04-04
  • Windows直接運行python程序的兩種方法

    Windows直接運行python程序的兩種方法

    本文主要介紹了Windows直接運行python程序,包括新建bat腳本和新建vbs腳本,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • python在linux中輸出帶顏色的文字的方法

    python在linux中輸出帶顏色的文字的方法

    這篇文章主要介紹了python在linux中輸出帶顏色的文字的方法,僅在Linux系統(tǒng)中有效果,一般輸出在控制臺中,本文用在日志環(huán)節(jié),方便測試,需要的朋友可以參考下
    2014-06-06

最新評論

金湖县| 达日县| 昌邑市| 沧源| 龙陵县| 策勒县| 武定县| 张掖市| 当雄县| 吴旗县| 普格县| 高安市| 桐柏县| 道真| 五莲县| 澄迈县| 西安市| 文水县| 长葛市| 甘孜县| 综艺| 雷州市| 永兴县| 洪湖市| 儋州市| 澄城县| 清新县| 葫芦岛市| 连南| 慈利县| 偏关县| 吉木萨尔县| 丘北县| 互助| 娄烦县| 盐亭县| 高邮市| 南汇区| 赣州市| 张家港市| 平阳县|