Tag: 谷歌铬无头

使用无头铬来拦截图像请求数据

我有一个用例,需要使用无头Chrome浏览器( https://chromedevtools.github.io/devtools-protocol/tot/Network/ )截取所有的图片请求,并find图片的大小,然后保存它(基本上丢弃小图像,如图标)。 但是,我无法find一种方法来加载内存中的图像数据保存之前。 我需要加载它的Img对象来获得width和height 。 Network.getResponseBody采取requestId,我没有在Network.requestIntercepted访问。 另外Network.loadingFinished在encodedDataLengthvariables中总是给我“0”。 我不知道为什么。 所以我的问题是: 如何拦截来自jpg / png请求的所有响应并获取图像数据? 不通过URLstring将文件保存到磁盘并加载回来。 BEST:如何从标题响应获取图像维度? 然后,我不必将数据读入内存。 我的代码如下: const chromeLauncher = require('chrome-launcher'); const CDP = require('chrome-remote-interface'); const file = require('fs'); (async function() { async function launchChrome() { return await chromeLauncher.launch({ chromeFlags: [ '–disable-gpu', '–headless' ] }); } const chrome = await launchChrome(); const protocol = await […]