Extract/decode Javascript 个变量从 html 到 python
Extract/decode Javascript variables from html into python
我正在尝试使用 python 从 HTML 站点提取一些 javascript 变量:
<script>
var nData = new Array();
var Data = "5b7b......";
nData = CallInit(Data);
...
...
</script>
我可以毫无问题地在 firebug(DOM 面板)中看到 "nData" 的内容:
[Object { height="532", width="1280", url="https://example.org...8EDA4F3F5F395B9&key=lh1", more...}, Object { height="266", width="640", url="https://example.org...8EDA4F3F5F395B9&key=lh1", more...}]
nData 的内容是一个URL。
我怎样才能 parse/extract nData 的内容到 python?
可能吗?
谢谢
在 python 库 Ghost.py 的帮助下,应该可以从已执行的 Javascript 代码中获取动态变量。
我刚刚用一些 small test site 进行了尝试,得到了一个名为 a
的 Javascript 变量,我在该页面上将其用作 python 对象。我做了以下事情:
安装 Ghost.py 和 pip install Ghost.py
。
使用 pip install PySide
.
安装 PySide(这是 Ghost.py 的先决条件)
使用下面的python代码:
from ghost import Ghost
ghost = Ghost()
ghost.open('https://dl.dropboxusercontent.com/u/13991899/test/index.html')
js_variable, _ = ghost.evaluate('a', expect_loading=True)
print js_variable
您应该能够将您的变量 nData
放入 python 变量 js_variable
,方法是使用 ghost.open
打开您的站点,然后调用 ghost.evaluate('nData')
。
我正在尝试使用 python 从 HTML 站点提取一些 javascript 变量:
<script>
var nData = new Array();
var Data = "5b7b......";
nData = CallInit(Data);
...
...
</script>
我可以毫无问题地在 firebug(DOM 面板)中看到 "nData" 的内容:
[Object { height="532", width="1280", url="https://example.org...8EDA4F3F5F395B9&key=lh1", more...}, Object { height="266", width="640", url="https://example.org...8EDA4F3F5F395B9&key=lh1", more...}]
nData 的内容是一个URL。 我怎样才能 parse/extract nData 的内容到 python? 可能吗?
谢谢
在 python 库 Ghost.py 的帮助下,应该可以从已执行的 Javascript 代码中获取动态变量。
我刚刚用一些 small test site 进行了尝试,得到了一个名为 a
的 Javascript 变量,我在该页面上将其用作 python 对象。我做了以下事情:
安装 Ghost.py 和
pip install Ghost.py
。使用
pip install PySide
. 安装 PySide(这是 Ghost.py 的先决条件)
使用下面的python代码:
from ghost import Ghost ghost = Ghost() ghost.open('https://dl.dropboxusercontent.com/u/13991899/test/index.html') js_variable, _ = ghost.evaluate('a', expect_loading=True) print js_variable
您应该能够将您的变量 nData
放入 python 变量 js_variable
,方法是使用 ghost.open
打开您的站点,然后调用 ghost.evaluate('nData')
。