2017-08-16 5 views
2

Puppeteerを使用して、ヘッドレスクロムブラウザでファイルをダウンロードする(または追加のHTTPリクエストを作成してレスポンスを保存する)にはどうすればよいですか?Puppeteer:ChromeのヘッドレスブラウザAPIを使用してファイルをダウンロードするにはどうすればよいですか?

+3

人形遣いでAPIがその道を進んでいる(https://github.com/GoogleChrome/puppeteer/issues/299)、しかし、ヘッドレスChromeは最初のダウンロードをサポートする必要があります。オープンなバグがあります: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

関連する問題