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

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

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

抓取到了一段包含數(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

結(jié)果:

image-20220223204934945

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

安裝:

pip install PyExecJS 

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

import execjs

execjs.eval(script)

會(huì)報(bào)出如下錯(cuò)誤:

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

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

import os

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

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

如果我們確實(shí)需要使用本地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í)行即可得到結(jié)果:

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"

總結(jié)

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

相關(guān)文章

  • 詳解使用Python處理文件目錄的相關(guān)方法

    詳解使用Python處理文件目錄的相關(guān)方法

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

    使用Python和NLTK進(jìn)行文本預(yù)處理示例詳解

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

    Python OpenCV 直方圖的計(jì)算與顯示的方法示例

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

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

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

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

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

    python中將字典改造為對(duì)象的方法

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

    python 多線程實(shí)現(xiàn)檢測(cè)服務(wù)器在線情況

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

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

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

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

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

    python中字典的常見(jiàn)操作總結(jié)2

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

最新評(píng)論

车致| 桂东县| 鞍山市| 和林格尔县| 巫山县| 滦平县| 湘西| 襄城县| 来凤县| 兴宁市| 昌黎县| 木里| 东平县| 龙州县| 张家口市| 将乐县| 鱼台县| 岳池县| 虹口区| 昭觉县| 贵溪市| 文昌市| 宽甸| 邹城市| 临桂县| 光泽县| 徐闻县| 星座| 琼结县| 阳高县| 杭州市| 长乐市| 遂平县| 滦平县| 锡林浩特市| 深圳市| 民权县| 湖南省| 天祝| 旺苍县| 宁津县|