python执行exec_在Python中如何执行ExecJs语句

本文介绍了如何在Python中使用execjs模块执行JavaScript语句,通过示例展示了从网页源代码中提取JSON数据的过程,并提到了execjs在数据抽取中的应用,以及与模拟浏览器交互的可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次给大家带来在Python中如何执行ExecJs语句,在Python中执行ExecJs语句的注意事项有哪些,下面就是实战案例,一起来看一下。

execjs模块

在网页数据提取的日常中,经常有一些有用的信息以json的格式存放在网页的源代码中,这时候要规则的提取的这些数据,就需要一个能够解析js的包了,execjs提供了简单易用的api

安装

使用pip安装:

pip install PyExecJS

使用easy_install安装:

easy_install PyExecJS

使用

这里使用了一个网站的网页做示例,它的源代码中有这么一段

14a275fa4b5356730acfeaeed90a7ca7.png

我们的目标是提取图中的json数据,代码如下:import requestsimport reimport execjsfrom lxml import etree

url = '

https://

www.madewell.com/cn/madewell_category/SHIRTSTOPS/topsblouses/PRDOVR~F9375/F9375.jsp'res = requests.get(url)

doc = etree.HTML(res.text)#s_text = doc.xpath('//script/text()')#def f(var,text):# if var in text:#

return

True# return False#data = filter(partial(f,"var data"),s_text)[0]data = ''.join(doc.xpath('//script[contains(text(),"var data")]/text()'))

json_raw = re.search('({[\S\s]*\})',data).group(1)

jsn = execjs.eval(json_raw)

print

(jsn)

执行结果如下图:

a0368b308f5452f6140cd0d9890f8169.png

扩展

在一些数据的抽取中用到了模拟浏览器,通常我们会用selenium或者其他的webkit包,但是一般的模拟包只是返回了渲染后的页面,有的时候仅仅是返回动态渲染的页面是不够的,还需要能够执行js并控制js与dom交互,有兴趣的同学可以看一下PyV8和w3c包

相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

相关阅读:

怎样在Android开发中与js进行交互

JS模块化-RequireJS

在vue首页怎样做出底部导航TabBar

一个用Vue.js 2.0+做出的石墨文档样式的富文本编辑器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值