使用jquery AJAX获取网页动态数据



我想从example.com/page.html获取数据。当我使用Chrome浏览器获取内容时,这里是page.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="test">
<p>test 1</p>
<p>test 2</p>
<p>test 3</p>
</div>
<script src="test.js"></script>
</body>
</html>

当我使用Ajax获取内容时,这里是page.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="test">
</div>
<script src="test.js"></script>
</body>
</html>

正如你所看到的,段落不在那里!

这是Ajax代码:

$.ajax({
url: 'http://example.com/page.html',
success: function(data) {
alert(data);
}
});

我知道这些段落是使用脚本(test.js(生成的,script.js是使用Chrome js引擎处理的。所以我的问题是:如何通过AJAX获得整个呈现的page.html内容?

如何通过AJAX获取整个呈现的page.html内容?

你不能。

Ajax只是发出HTTP请求并使用客户端JS获得结果的过程。

您需要做的事情不是Ajax。


您需要:

  • 发出Ajax请求,然后通过复制页面引用的JS所做的一切来跟进
  • 将HTML注入浏览器,让JS执行,然后从浏览器中读取DOM(如果注入的代码最终以某种方式与页面交互,这可能很危险(
  • 构建一个web服务,在无头浏览器中呈现页面,然后返回DOM的串行版本,然后向该web服务发出Ajax请求

最新更新