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

python爬蟲(chóng) execjs安裝配置及使用

 更新時(shí)間:2019年07月30日 10:23:21   作者:flashine  
這篇文章主要介紹了python爬蟲(chóng) execjs安裝配置及使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

模塊安裝

參考官方文檔安裝

pip install PyExecJS

配置

該模塊需要JS運(yùn)行時(shí)環(huán)境

以下JS runtime經(jīng)過(guò)官方測(cè)試認(rèn)可,建議采用

以下JS runtime也支持但未經(jīng)過(guò)官方測(cè)試

  • Apple JavaScriptCore - Included with Mac OS X
  • JScript :windows自帶JS解釋器,IE瀏覽器
  • SlimerJS

注:對(duì)于PyV8模塊目前google上只提供了支持Python2的模塊安裝,尚不支持Python3,使用pip直接安裝時(shí)會(huì)報(bào)錯(cuò)。經(jīng)過(guò)各種搜索,提示需要更新pip和setuptools到最新版,依然無(wú)法解決。

對(duì)于使用JScript環(huán)境的用戶,只要在IE瀏覽器下運(yùn)行無(wú)報(bào)錯(cuò)的js代碼也可直接運(yùn)行,不需要另外安裝運(yùn)行時(shí)環(huán)境

代碼編寫

js代碼執(zhí)行之前需要在運(yùn)行時(shí)環(huán)境下編譯才能執(zhí)行

由于該js環(huán)境下沒(méi)有window、document對(duì)象,也沒(méi)有console面板,因此在使用某些基于瀏覽器的原生對(duì)象在編譯過(guò)程時(shí)會(huì)報(bào)錯(cuò)。所以在使用compile函數(shù)時(shí)盡量以函數(shù)的形式來(lái)寫js代碼,方便Python調(diào)用。

import execjs

name = execjs.get().name # 獲取JS的運(yùn)行時(shí)名稱,寫代碼時(shí)可不寫
ctx = execjs.compile("""
    function add(x, y) {
        return x + y;
     }
""") # 獲取代碼編譯完成后的對(duì)象
 ctx.call("add", 1, 2) # 調(diào)用js函數(shù)add,并傳入它的參數(shù)
 ctx.eval("add({0}, {1})").format(1,2) # 使用eval的寫法同上,但是在傳入字符串或者其他類型的數(shù)據(jù)時(shí)需要添加對(duì)應(yīng)的格式,如下所示,具體可在程序中debug
 ctx.eval('add("{0}", "{1}")').format("1","2")

另外有時(shí)候js代碼過(guò)長(zhǎng),我們可以將js代碼先保存到文件中。

由于歷史遺留問(wèn)題,ExecJS以前使用python2編寫的,所以在代碼實(shí)現(xiàn)過(guò)程中會(huì)涉及到文件編碼的問(wèn)題。ExecJS先將js代碼讀到內(nèi)存中,然后再把調(diào)用js的代碼和js文件的代碼一同寫入到一個(gè)臨時(shí)文件(C:\Users\user\AppData\Local\Temp\xx.js)中。

如果js文件采用的是UTF-8編碼,那么在寫入到臨時(shí)文件時(shí),模塊會(huì)報(bào)UnicodeEncodeError: 'gbk' codec can't encode character xxx ,主要是因?yàn)槟K在進(jìn)行文件寫入時(shí)采用的是windows的默認(rèn)編碼gbk,而沒(méi)有指定encoding=utf-8,所以js文件需要以gbk編碼保存。

import execjs

with open(r"C:\Users\user\Desktop\security.js", 'r') as f:
    content = f.read() #讀取js文件的全部?jī)?nèi)容到content變量中
ctx = execjs.compile(content)
jscode = 'getkey("{0}","10001","{1}")'.format(username, pubkey)
print(ctx.eval(jscode))

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)下載進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 淺談python字典多鍵值及重復(fù)鍵值的使用

    淺談python字典多鍵值及重復(fù)鍵值的使用

    下面小編就為大家?guī)?lái)一篇淺談python字典多鍵值及重復(fù)鍵值的使用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • Pandas自定義選項(xiàng)option設(shè)置

    Pandas自定義選項(xiàng)option設(shè)置

    pandas有一個(gè)option系統(tǒng)可以控制pandas的展示情況,一般來(lái)說(shuō)我們不需要進(jìn)行修改,但是不排除特殊情況下的修改需求。本文將會(huì)詳細(xì)講解pandas中的option設(shè)置,感興趣的可以了解下
    2021-07-07
  • python plotly畫柱狀圖代碼實(shí)例

    python plotly畫柱狀圖代碼實(shí)例

    這篇文章主要介紹了python plotly畫柱狀圖代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python xlrd excel文件操作代碼實(shí)例

    Python xlrd excel文件操作代碼實(shí)例

    這篇文章主要介紹了Python xlrd excel文件操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python 多線程C段掃描、檢測(cè) Ping掃描腳本的實(shí)現(xiàn)

    Python 多線程C段掃描、檢測(cè) Ping掃描腳本的實(shí)現(xiàn)

    這篇文章主要介紹了Python 多線程C段掃描、檢測(cè) Ping掃描腳本的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Python2到Python3的遷移過(guò)程中報(bào)錯(cuò)AttributeError: ‘str‘ object has no attribute ‘decode‘問(wèn)題的解決方案大全

    Python2到Python3的遷移過(guò)程中報(bào)錯(cuò)AttributeError: ‘str‘ objec

    在 Python 編程過(guò)程中,AttributeError: 'str' object has no attribute 'decode' 是一個(gè)常見(jiàn)的錯(cuò)誤,這通常會(huì)在處理字符串時(shí)出現(xiàn),尤其是在 Python 2 到 Python 3 的遷移過(guò)程中,本文將詳細(xì)介紹該問(wèn)題的根源,并提供解決方案,需要的朋友可以參考下
    2025-04-04
  • 幾行Python代碼爬取3000+上市公司的信息

    幾行Python代碼爬取3000+上市公司的信息

    今天小編就為大家分享一篇關(guān)于幾行Python代碼爬取3000+上市公司的信息,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python爬蟲(chóng)獲取頁(yè)面所有URL鏈接過(guò)程詳解

    Python爬蟲(chóng)獲取頁(yè)面所有URL鏈接過(guò)程詳解

    這篇文章主要介紹了Python爬蟲(chóng)獲取頁(yè)面所有URL鏈接過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python操作sqlite的CRUD實(shí)例分析

    python操作sqlite的CRUD實(shí)例分析

    這篇文章主要介紹了python操作sqlite的CRUD實(shí)現(xiàn)方法,涉及Python操作SQLite數(shù)據(jù)庫(kù)CURD相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

肃北| 潮州市| 合阳县| 宣武区| 屯留县| 东城区| 隆德县| 太白县| 益阳市| 黄山市| 台安县| 沙湾县| 陵水| 昌江| 巴塘县| 湖州市| 丁青县| 五莲县| 枣强县| 武宣县| 曲周县| 辰溪县| 武强县| 枝江市| 宁安市| 洛隆县| 阿城市| 安陆市| 敦煌市| 鹤峰县| 宁夏| 铜鼓县| 宾川县| 射阳县| 河源市| 屏东市| 永州市| 察隅县| 山东| 瓦房店市| 太保市|