我正在尝试使用XMLHTTPRequest获取页面的HTML内容。该页面将在几秒钟内完成加载,但是需要填充的数据需要更长的时间。
我能够获取页面的HTML内容,但是由于请求是立即发出的,因此我所需的数据不在响应中。
有什么方法可以让请求等待几秒钟,然后再尝试获取内容?
(如果问题的术语不完善,请事先道歉,只是开始使用这些类型的请求)。
// My current request:
async function getHTMLContent() {
return new Promise( (resolve, reject) => {
var XMLRequest = new XMLHttpRequest();
XMLRequest.open('GET', "myURL", true);
XMLRequest.send();
XMLRequest.onload = () => {
if (XMLRequest.readyState == 4 && XMLRequest.status == 200) {
return resolve(XMLRequest.responseText);
} else {
return reject('There was an error retrieving the data');
}
}
});
}
当前输出为:
<div class="abc"></div>
之间没有任何内容。
我希望内容为:
<div class="abc">"The data"</div>.
答案 0 :(得分:0)
如果数据是在加载后添加到页面的,那么那是因为其中的JavaScript正在操纵DOM。
您不能简单地等待该数据出现。您需要运行JavaScript(或等效的JavaScript)。
您如何依赖要处理的特定JS,因此您需要阅读并进行反向工程。