---
type: snippet
tags: ['puppeteer', 'image']
status: release
ctime: 2022-04-09
mtime: 2024-03-22
---

이미지 저장[^93-1]

- 페이지에서 JavaScript를 통해 이미지 추출
  - 캔버스에서 이미지 추출
  - 서버에서 이미지 가져오기
- DevTools 프로토콜을 사용하여 이미지 추출

[^93-1]: [Saving Images from a Headless Browser](https://intoli.com/blog/saving-images/)

```js
const tree = await page._client.send('Page.getResourceTree')

for (const resource of tree.frameTree.resources) {
  const { content } = await page._client.send(
    'Page.getResourceContent',
    { frameId: String(page.mainFrame()._id), url: resource.url },
  )
  const contentBuffer = Buffer.from(content, 'base64')
}
```

```js
page.on('response', async (response) => {
  const url = response.url()
  const buffer = await response.buffer()
})
```