2017-08-16 63 views
2

使用Puppeteer,我该如何让无头Chrome浏览器下载一个文件(或者创建额外的http请求并保存响应)?Puppeteer:如何使用chrome headless browser api下载文件?

+3

在木偶API是在它的途中(https://github.com/GoogleChrome/puppeteer/issues/299),但无头Chrome必须首先支持下载。有一个开放的bug:https://bugs.chromium.org/p/chromium/issues/detail?id = 696481。 – ebidel

+1

Chrome无头支持几乎在那里:https://chromium-review.googlesource.com/c/590913 –

回答

0

你可以通过窗口做一个简单的请求,它应该工作。 npm request

只要它返回承诺与您的回应,您可以写一个明确的保存功能,并存储响应。

看来这个木偶具有这个实现。见这里: How to make a request with puppeteer

看一看在这个:

时发出一个页面发出请求。请求对象是只读的。为了拦截和变更请求,请参阅page.setRequestInterceptionEnabled。

我希望这会有所帮助。

Link for setting headers

+0

我希望能够使用节点来自动下载文件。在节点中只发出常规的http请求的问题是,它不会发送由无头浏览器管理的正确会话cookie。由于它提供了额外的功能,使用完整的无头浏览器使得任务更容易。 – aherriot

+0

你需要的是头文件。我刚刚编辑了我的回复,显示了如何添加标题的示例。这样,无论您的浏览器如何,会话都被存储起来,客户端会收到一个通知,指出浏览器(在页眉中定义)正在尝试执行操作。在你的情况下,下载文件。 –

+0

该机制将让你看看正在做出的请求(并改变它们)。我想触发其他的请求,否则不会进行并将响应保存到磁盘。 – aherriot