从网页获取JavaScript var值

时间:2016-10-13 11:20:02

标签: javascript php json xpath web

在php程序中,我在$ page变量中有一个网页。

...
$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context);

$dom = new DOMDocument;
$dom->loadHTML($);
$xpath = new DOMXPath($dom);
...

在这个页面中有一些javascript,我想获取名为" evtsVar"的变量中包含的json数据。

...
<script ...>
    ...
</script>
<script ...>
    ...
    var evtsVar = {json data}
    ...
</script>

使用Xpath查询是正确的方法吗?如何获取此变量值?

谢谢大家,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

这是关于某个页面的非常具体的问题。我已经分析了您提供链接的页面。脚本标记中有一个变量。你想在JSON中得到它。

我已经使用jquery作为解决方案,强烈推荐给你。

首先获取页面:

<?

$page = file_get_contents("http://www.autostrade.it/autostrade-gis/gis.do", false, $context);

?>

然后在javascript变量中获取页面:

var page = <?php echo json_encode( $page ) ?>;

现在我们有了这个页面,我们应该找到以&#34; var evtsVar =&#34;开头的字符串,以&#34;;&#34;结尾:

var preString = "var evtsVar = ";
var postString = ";";
var preIndex = page.indexOf( preString );
var searchIndex = preIndex + page.substring( preIndex ).indexOf( postString );

var evtsString = page.slice( preIndex + preString.length , searchIndex );

现在将字符串解析为json对象并打印:

var evtsVar = JSON.parse( evtsString );

console.log( evtsVar );

经过测试,有效。