gpt4 book ai didi

node.js - Puppeteer:如何仅等待第一个响应(HTML)

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:52 43 4
gpt4 key购买 nike

我正在使用 puppeteer-cluster 来抓取网页。

如果我在每个网站上同时打开多个页面(8-10 页),连接速度会变慢,并且会出现许多超时错误,如下所示:

超时错误:超出导航超时:超出 30000 毫秒

我只需要访问每个页面的 HTML 代码。我不需要等待 domcontentloaded 等。

有没有办法告诉page.goto()只等待来自网络服务器的第一个响应?或者我需要使用另一种技术来代替 puppeteer?

最佳答案

domcontentloaded 是第一个 html 内容的事件。

The DOMContentLoaded event fires when the initial HTML document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading.

以下内容将在加载初始 HTML 文档时完成加载。

await page.goto(url, {waitUntil: 'domcontentloaded'})

但是,您可以阻止图像或样式表以节省带宽,并且在一次加载 10 个页面时加载速度更快。

将下面的代码放在正确的位置(在使用 page.goto 导航之前),它将停止加载图像、样式表、字体和脚本。

await page.setRequestInterception(true);
page.on('request', (request) => {
if (['image', 'stylesheet', 'font', 'script'].indexOf(request.resourceType()) !== -1) {
request.abort();
} else {
request.continue();
}
});

关于node.js - Puppeteer:如何仅等待第一个响应(HTML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57919714/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com