在puppeteer内部运行的页面下载图像。调用page.evaluate
时,必须先将某些映像写入磁盘,然后再对它们进行其他操作。
最好的方法是什么?能够从运行在puppeteer中的浏览器中写入那些图像吗?从puppeteer发送缓冲区到node.js?
注意:其中一些图像可能是结果画布操作,因此它们不是请求结果所必需的。
最佳答案
有几种可能的解决方案:
1.如果页面允许cors,则可以将这些图像发送到后端服务器。使用类似fetch
的名称
2.另一个选择是从页面获取所有图像,并将它们传递回服务器。这也是一些可能的实现:
2.1。您可以使用return JSON.stringify(Array.from(document.querySelectorAll('img'), i => i.src))
之类的内容获取所有图像URL,然后将其直接下载到服务器。
2.2。将图像放在画布上,然后使用toDataUrl()
获取base64编码的数据,然后可以在后端进行传递和处理。更多信息here,这是关于在disk上保存base64数据的信息
附言从puppeteer返回后端时,只需记住要JSON.stringify()
您的数据,因为puppeteer无法处理数据。
关于node.js - puppeteer ,与node.js交换缓冲区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57963941/