python爬虫execjs安装配置及使用

python爬虫execjs安装配置及使用

2023年6月29日发(作者:)

python爬⾍execjs安装配置及使⽤模块安装参考安装pip install PyExecJS配置该模块需要JS运⾏时环境以下JS runtime经过官⽅测试认可,建议采⽤PyV8:⼀个调⽤Google V8引擎的Python模块 本⽂采⽤该运⾏时PhantomJSNashorn以下JS runtime也⽀持但未经过官⽅测试Apple JavaScriptCore - Included with Mac OS XJScript :windows⾃带JS解释器,IE浏览器SlimerJS注:对于PyV8模块⽬前google上只提供了⽀持Python2的模块安装,尚不⽀持Python3,使⽤pip直接安装时会报错。经过各种搜索,提⽰需要更新pip和setuptools到最新版,依然⽆法解决。对于使⽤JScript环境的⽤户,只要在IE浏览器下运⾏⽆报错的js代码也可直接运⾏,不需要另外安装运⾏时环境代码编写js代码执⾏之前需要在运⾏时环境下编译才能执⾏由于该js环境下没有window、document对象,也没有console⾯板,因此在使⽤某些基于浏览器的原⽣对象在编译过程时会报错。所以在使⽤compile函数时尽量以函数的形式来写js代码,⽅便Python调⽤。import execjsname = ().name # 获取JS的运⾏时名称,写代码时可不写ctx = e(""" function add(x, y) { return x + y; }""") # 获取代码编译完成后的对象 ("add", 1, 2) # 调⽤js函数add,并传⼊它的参数 ("add({0}, {1})").format(1,2) # 使⽤eval的写法同上,但是在传⼊字符串或者其他类型的数据时需要添加对应的格式,如下所⽰,具体可在程序中debug ('add("{0}", "{1}")').format("1","2")另外有时候js代码过长,我们可以将js代码先保存到⽂件中。由于历史遗留问题,ExecJS以前使⽤python2编写的,所以在代码实现过程中会涉及到⽂件编码的问题。ExecJS先将js代码读到内存中,然后再把调⽤js的代码和js⽂件的代码⼀同写⼊到⼀个临时⽂件(C:UsersuserAppDataLocalTemp )中。如果js⽂件采⽤的是UTF-8编码,那么在写⼊到临时⽂件时,模块会报UnicodeEncodeError: 'gbk' codec can't encode character xxx

,主要是因为模块在进⾏⽂件写⼊时采⽤的是windows的默认编码gbk,⽽没有指定encoding=utf-8,所以js⽂件需要以gbk编码保存。import execjswith open(r"C:", 'r') as f: content = () #读取js⽂件的全部内容到content变量中ctx = e(content)jscode = 'getkey("{0}","10001","{1}")'.format(username, pubkey)print((jscode))以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687984895a63830.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信