首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Chrome中获取图像

如何从Chrome中获取图像
EN

Stack Overflow用户
提问于 2019-03-26 22:09:02
回答 2查看 808关注 0票数 5

我正在编写一些使用Chrome DevTools协议控制Chrome的测试代码。打开网页后,我需要从网页中获取图像。很容易获得图像URL,但我想从Chrome获得实际图像,而不需要重新下载它们。这将帮助测试运行得更快,因为测试客户端和web服务器之间的带宽有限。它还将帮助测试模拟与web服务器的更真实的交互。

有没有一种使用Chrome DevTools协议获取图像的方法?我想我可以拍一张每张照片的截图,但是我更喜欢不被修改的图像。或者,是否有一种方法可以从注入浏览器的脚本中访问图像?

EN

Stack Overflow用户

回答已采纳

发布于 2019-03-26 22:56:11

我想你可以用木偶师来做这个:

傀儡机是一个节点库,它提供了一个高级API来通过DevTools协议控制Chrome或Chromium。傀儡机默认运行无头,但可以配置为运行完全(非无头)铬或铬。

下面是一个访问这个问题的脚本,并在加载所有映像后立即将它们保存到磁盘中:

代码语言:javascript
运行
复制
const {writeFileSync} = require('fs');
const puppeteer = require('puppeteer');

let counter = 0;

const whenImage = fn => async res => {
  const contentType = res.headers()['content-type']
  if (contentType && contentType.startsWith('image/')) {
    fn(await res.buffer());
  }
};

puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  page.on('response', whenImage(content => writeFileSync(`img_${counter++}`, content)));
  await page.goto('https://stackoverflow.com/q/55366906/1244884');
  await browser.close();
});
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55366906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档