【发布时间】:2019-05-07 00:20:55
【问题描述】:
我试图在不加载图像的情况下获取图像的 NaturalWidth 和 NaturalHeight,以加快速度。 有没有办法做到这一点?谢谢!
编辑: 有人告诉我分享一些代码,但我真的不知道要分享什么。
这是我用来获取所有图像尺寸的方法:
const images_datas = await this.page.$$eval('img', imgs => {
var images_data = []
var empty_images = 0
imgs.forEach(img => {
if(img.naturalWidth*img.naturalHeight == 0 || ( img.naturalHeight == 1 && img.naturalWidth == 1)){
empty_images++
} else {
images_data.push({'url': img.src, 'width': img.naturalWidth, 'height' : img.naturalHeight, 'alt' : img.alt})
}
});
return {'images_data': images_data, 'nb_empty_images': empty_images}
} );
还有我用来阻止图片加载的代码。
await page.setRequestInterception(true);
page.on('request', request => {
if (request.resourceType() === 'image')
request.abort();
else
request.continue();
});
但是这两个代码不能一起工作...
【问题讨论】:
-
能否分享一些代码
-
我认为这不是重复的,因为该帖子被标记为“puppeteer”。因此,这不仅仅是关于 JavaScript 的客户端。
-
理想的方法是使用 BE 引擎为您计算值并在加载之前为您提供这些值,否则我认为没有办法知道不加载文件的值.
标签: javascript puppeteer