javascript - 如何使用 python lxml 提取 javascript 变量的值

标签 javascript python parsing lxml

我试图在 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/

相关文章:

javascript - 普通JS : Select all elements with class within parent based on cursor position

javascript - 如何计算数组中的某些元素?

javascript - 缩小 JS/CSS 文件

java - 奇怪格式的响应 : Ljava. lang.Object;@43da8f90

c# - 如何提取 http xml 答案的值

javascript - 来自 Mysql 的简单 Jquery Ajax 建议

python - 如何将 python csv.DictReader 与二进制文件一起使用? (对于一个babel自定义提取方法)

python - 将整数转换为经纬度地理位置

python 意外的属性错误

android - 从 BIZ(交易)短信中提取(解析)金额和描述