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

Python使用execjs執(zhí)行包含中文參數(shù)的JavaScript

 更新時間:2022年03月28日 16:15:54   作者:小小明-代碼實體  
爬蟲的開發(fā)過程中,往往需要對JS進行模擬,簡單或者通用的還可以在Python中模擬或者找到對應的第三方庫,但是復雜的就可能不好實現(xiàn)了,下面這篇文章主要給大家介紹了關于Python使用execjs執(zhí)行包含中文參數(shù)的JavaScript的相關資料,需要的朋友可以參考下

抓取到了一段包含數(shù)據(jù)的JavaScript代碼:

import re
import requests

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
}
res = requests.get(
    "https://www.kuaikanmanhua.com/web/comic/100868/",
    headers=headers
)
script = re.findall(
    "<script>window.__NUXT__=([^<]+);</script>", res.text)[0].replace('\\u002F', "/")
script

結果:

image-20220223204934945

這段代碼直接在游覽器執(zhí)行可以得到對應的JSON數(shù)據(jù),那么我們?nèi)绾问褂胮ython執(zhí)行這段代碼獲取JS數(shù)據(jù)呢?答案是使用execjs。

安裝:

pip install PyExecJS 

但是如果此時在安裝過Nodejs的windows上直接執(zhí)行代碼:

import execjs

execjs.eval(script)

會報出如下錯誤:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 447: illegal multibyte sequence

此時我們需要重新指定execjs的環(huán)境為JScript:

import os

os.environ["EXECJS_RUNTIME"] = "JScript"

再次執(zhí)行可以順利得到結果。

如果我們確實需要使用本地nodejs的環(huán)境執(zhí)行JavaScript則需要修改修改execjs的源碼:

import os

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

Node.js (V8)

找到execjs安裝目錄下的_external_runtime.py文件:

image-20220223204010168

重啟程序再次執(zhí)行即可得到結果:

image-20220223204725760

execjs的調(diào)用函數(shù)或讀取變量示例:

import execjs

ctx = execjs.compile("""
       function add(x, y) {
               return x + y;
       }
       v = add(3, 4);
""")
print(ctx.call("add", 1, 2), ctx.eval("v"))

3 7

Lib\site-packages\execjs\runtime_names.py文件可以看到execjs所支持的JavaScript環(huán)境:

PyV8           = "PyV8"
Node           = "Node"
JavaScriptCore = "JavaScriptCore"
SpiderMonkey   = "SpiderMonkey"
JScript        = "JScript"
PhantomJS      = "PhantomJS"
SlimerJS       = "SlimerJS"
Nashorn        = "Nashorn"

總結

到此這篇關于Python使用execjs執(zhí)行包含中文參數(shù)JavaScript的文章就介紹到這了,更多相關execjs執(zhí)行包含中文參數(shù)js內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解使用Python處理文件目錄的相關方法

    詳解使用Python處理文件目錄的相關方法

    這篇文章主要介紹了使用Python處理文件目錄的相關方法,使用到了os模塊,需要的朋友可以參考下
    2015-10-10
  • 使用Python和NLTK進行文本預處理示例詳解

    使用Python和NLTK進行文本預處理示例詳解

    文將介紹如何使用Python編程語言和NLTK(Natural Language Toolkit)庫進行文本預處理,為后續(xù)的文本分析和機器學習任務做準備,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • Python OpenCV 直方圖的計算與顯示的方法示例

    Python OpenCV 直方圖的計算與顯示的方法示例

    這篇文章主要介紹了Python OpenCV 直方圖的計算與顯示的方法示例,主要介紹用NumPy和Matplotlib計算和繪制直方圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python實現(xiàn)大文件排序的方法

    Python實現(xiàn)大文件排序的方法

    這篇文章主要介紹了Python大文件排序的方法,涉及Python針對文件、緩存及日期等操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Django使用Mysql數(shù)據(jù)庫已經(jīng)存在的數(shù)據(jù)表方法

    Django使用Mysql數(shù)據(jù)庫已經(jīng)存在的數(shù)據(jù)表方法

    今天小編就為大家分享一篇Django使用Mysql數(shù)據(jù)庫已經(jīng)存在的數(shù)據(jù)表方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python中將字典改造為對象的方法

    python中將字典改造為對象的方法

    這篇文章主要介紹了python中將字典改造為對象的方法,在實際項目中,當使用json模塊加載一個深度很深的字典類型的json文件時,使用字典的訪問方式,將會出現(xiàn)很多中括號,即不直觀也不美觀,可以將這個字典轉化為對象,使得可以用.的方式訪問,需要的朋友可以參考下
    2023-11-11
  • python 多線程實現(xiàn)檢測服務器在線情況

    python 多線程實現(xiàn)檢測服務器在線情況

    本文給大家分享的是Python使用多線程通過ping命令檢測服務器的在線狀況,給大家了內(nèi)網(wǎng)和外網(wǎng)的2個例子,有需要的小伙伴可以參考下。
    2015-11-11
  • python 根據(jù)列表批量下載網(wǎng)易云音樂的免費音樂

    python 根據(jù)列表批量下載網(wǎng)易云音樂的免費音樂

    這篇文章主要介紹了python 根據(jù)列表下載網(wǎng)易云音樂的免費音樂,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-12-12
  • 詳解python中的json的基本使用方法

    詳解python中的json的基本使用方法

    本篇文章主要介紹了python中的json的基本使用方法,在Python中使用json的時候,主要也就是使用json模塊,json是以一種良好的格式來進行數(shù)據(jù)的交互,有興趣的可以了解一下。
    2016-12-12
  • python中字典的常見操作總結2

    python中字典的常見操作總結2

    這篇文章主要介紹了python中字典的常見操作總結,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07

最新評論

元谋县| 卢氏县| 禄劝| 共和县| 波密县| 青阳县| 汽车| 马山县| 井陉县| 安图县| 当涂县| 广元市| 迁安市| 霍城县| 平阴县| 喀什市| 平武县| 青神县| 禄丰县| 松潘县| 小金县| 全州县| 洪江市| 昌黎县| 友谊县| 泸水县| 罗山县| 普兰店市| 神农架林区| 万荣县| 淳化县| 临沂市| 安龙县| 梅州市| 郎溪县| 郁南县| 芦山县| 敦化市| 巍山| 玉门市| 集安市|