【发布时间】:2023-04-08 08:28:01
【问题描述】:
我正在使用 PhantomJS 加载页面,每个请求大约需要 20 秒,所以我想加快速度。
browser.createPage((err, page) => {
page.set('settings', {
userAgent: random_ua.generate(),
javascriptEnabled: true,
loadImages: false
});
return page.open(url, (err,status) => {
if (err) {
console.log('Error:', err);
onError();
}
if (status == 'success') {
page.evaluate(function () {
return document.body.innerHTML.trim();
}, (err,result) => {
console.log('Execution time: ' + ((new Date).getTime() - time) / 1000 + 's');
browser.exit();
resolve(result)
});
} else {
console.log('Status:', status);
onError();
}
});
}
正如我所见,它等待页面和外部资源(css、js 等)的完全加载。
如何在加载后立即解析 html 而不会延迟加载外部链接?
【问题讨论】:
-
如果你只想要html,你为什么要使用phantomjs?请参阅对此的评论:stackoverflow.com/a/20174298/484780
-
@KevinJantzer 因为 OP 可能想要由 javascript 形成的页面的结果 HTML?
-
但如果是这种情况,您必须等待页面完全加载外部资源(正如 OP 所说的那样,他不想这样做)
-
不,您只需等待 javascript 加载。无需获取所有那些数兆字节的图标字体 css abominations 并渲染它们。
标签: javascript phantomjs