2017-08-16 92 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