我试图在 html 页面中获取 javascript 变量的值。我已经弄清楚如何获取所有脚本标签的文本,但似乎无法弄清楚如何获取脚本标签内特定变量的文本。有谁知道如何获取 javascript 变量的文本?
以下是我尝试解析的示例。我正在尝试获取“var d”的值
<div id="box" style="position:absolute;z-index:6;left:px;top:450px;"></div>
<script language="javascript">
function showTooltip(element, town_name, p, points, a, town_type){
var t = $('tt');
t.style.top = (-75 + element.offsetTop) + 'px';
t.style.left = (25 + element.offsetLeft) + 'px';
t.style.backgroundImage="url('images/odd.png')";
t.innerHTML = '<font color=#AD4100>' + unescape(town_name) + '<br/>' + unescape(p) + '<br/>' + points + '<br/>' + unescape(a) + '<br/>' + unescape(town_type) + '</font>';
t.show();
}
function hideTooltip(){
$('tt').hide();
}
var d = [[1490.77265625,1373.4140625,30983,'TownID: 30983','GREY','circle_grey.png',1248,'planet x\'s city 5','','N/A'],[1186.45390625,1538.265625,33009,'TownID: 33009','GREY','circle_grey.png',1150,'wendyshome','','N/A'],[1234.496875,856.18203125,31646,'TownID: 31646','GREY','circle_grey.png',1312,'...','','N/A'],[1041.30078125,812.55859375,35358,'TownID: 35358','GREY','circle_grey.png',1207,'Waterville','','N/A'],
以下是我获取所有脚本标签文本的代码片段。
for element in page.iter('script'):
scriptText = element.text_content()
print(scriptText)
最佳答案
提取后,您必须对 scriptText
使用字符串处理。 lxml
在这里帮不了你了。
如果 var d
是脚本中的最后一个条目,您可以使用:
var_d_source = scriptText.split('var d =', 1)[-1].rsplit(';', 1)[0].strip()
它应该为您提供 var d =
之后的所有内容,直到最后一个分号。
然后您将使用 json
模块将该值转换为 Python:
var_d_value = json.loads(var_d_value)
关于javascript - 如何使用 python lxml 提取 javascript 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910539/