如何从另一个网页获取值并将其存储为变量?

Posted

技术标签:

【中文标题】如何从另一个网页获取值并将其存储为变量?【英文标题】:How can I get a value from another webpage and store it as a variable? 【发布时间】:2015-01-31 01:11:18 【问题描述】:

我正在使用石墨来获取统计数据,并希望为变量呈现一个 justgage 仪表。 Graphite 可以使用任一 json 吐出值:

["target": "snmp.ssbSubstation.realEnergy.1", "datapoints": [[4511552439.0, 1417540920]]]

或原始:

snmp.ssbSubstation.realEnergy.1,1417540860,1417540920,60|4511552439.0

根据您指定的是 json 还是 raw,这就是返回的源代码的整行。该网址的格式类似于http://<graphite server>/render?target=snmp.ssbSubstation.realEnergy.1&format=raw&from=-1min

无论哪种方式,我都想获取 4511552439.0 并将其设置为仪表的值并在 grafana 的 html 面板中呈现。有没有一种非常简单的方法可以做到这一点?

【问题讨论】:

【参考方案1】:

您可以使用JSONP ajax 请求来完成此操作。请查看下面的示例(作为您应用的起点)。

您也可以找到与 jsFiddle here 相同的演示。

也许数据访问可以做得更好。二维访问看起来有点奇怪,但确实有效。

我使用 mocky.io 来模拟你的数据。

// data format ["target": "snmp.ssbSubstation.realEnergy.1", "datapoints": [[4511552439.0, 1417540920]]]

// http://www.mocky.io/v2/547df7d558eb49190856a759

(function ($) 
    var url = 'http://www.mocky.io/v2/547df7d558eb49190856a759'; // mocky.io demo source

    var jsonCallback = function (data) 
        var gauge = data[0].datapoints[0][0];
        console.log(gauge);
        
        $('#data').html(JSON.stringify(data, null, 2));
        $("</p>").text('value for gauge ' + gauge).appendTo('#data');
    ;

    $.ajax(
        type: 'GET',
        url: url,
        contentType: "application/json",
        dataType: 'jsonp'
    ).done(jsonCallback)
    .fail(function (xhr) 
        alert("error" + xhr.responseText);
    );

)(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id='data'></pre>

【讨论】:

以上是关于如何从另一个网页获取值并将其存储为变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取网页内容并将其保存到字符串变量中

如何创建一个变量并将其存储为 50 个观察值(python)?

PHP Twitter API 无法获取georss:point 并将其存储为变量?

如何从不和谐中获取用户输入并将其存储为变量以在方程式中使用?不和谐.py

如何读取 sys.exit() 返回的值并将其存储在变量中

从数据库中检索值并将其存储为会话变量