Kir*_*ran 32 javascript python web-scraping
我正在开展网络抓取项目.我正在使用的其中一个网站的数据来自Javascript.
我之前的一个问题有一个建议,我可以直接从Python调用Javascript,但我不知道如何实现这一点.
例如:如果JavaScript函数定义为: add_2(var,var2)
我如何从Python调用该JavaScript函数?
Ano*_*sse 10
查找具有Python绑定的JavaScript解释器.(试试Rhino?V8?SeaMonkey?).当你找到一个时,它应该带有如何从python中使用它的例子.
但是,Python本身不包含JavaScript解释器.
要从Python与JavaScript交互,我使用webkit,它是Chrome和Safari背后的浏览器渲染器.通过Qt对webkit进行Python绑定.特别是有一个执行JavaScript的函数,名为evaluateJavaScript().
这是一个执行JavaScript并提取最终HTML的完整示例.
小智 5
我最近发现的一个有趣的替代方法是Python bond模块,该模块可用于与NodeJs进程(v8引擎)进行通信。
用法与pyv8绑定非常相似,但是您可以直接使用任何NodeJs库而无需进行修改,这对我来说是一个主要卖点。
您的python代码如下所示:
val = js.call('add2', var1, var2)
Run Code Online (Sandbox Code Playgroud)
甚至:
add2 = js.callable('add2')
val = add2(var1, var2)
Run Code Online (Sandbox Code Playgroud)
调用函数绝对比pyv8慢,因此它很大程度上取决于您的需求。如果您需要使用npm繁重的包装,那就bond太好了。您甚至可以让更多的nodejs进程并行运行。
但是,如果您只需要调用一堆JS函数(例如,在浏览器/后端之间具有相同的验证函数),pyv8则肯定会快很多。
| 归档时间: |
|
| 查看次数: |
73318 次 |
| 最近记录: |