レンダリングされたページをファイルにダンプすることをサポートするheadlessブラウザがnode.jsにありますか? phantomjsはファイルへのレンダリングをサポートしていますが、node.jsでは実行されません。私はzombie.jsがnode.jsヘッドレスブラウザだが、ファイルへのレンダリングをサポートしていないことを知っている。ヘッドレスnode.jsスクリーンショット機能を備えたjavascriptブラウザ?
答えて
これは少しオーバーヘッドでソリューションのように見えるかもしれません...
あなたはMozReplプラグインでMozilla Firefoxを使用することができます。基本的には、このプラグインはFirefoxに外部からブラウザを制御するためのTelnetポートを提供します。 URLを開いたり、スクリーンショットを撮ったりすることができます。 XvfbサーバーでFirefoxを実行すると、ヘッドレスモードで実行されます。
これで、ブラウザを外部からnode.jsで制御するだけで済みます。いくつかの例を見てきましたが、誰かがFirefoxのchrome.js内にhttpなどのインターフェースを実装しています。したがって、httpコマンドを実行してスクリーンショットを取得することができます。その後、node.jsからhttpコールを使用できます。これは奇妙に見えるかもしれませんが、実際にはあなたのためにうまくいくかもしれません。
私はスクリーンショットをトリガするために非同期モードでPerlのMojoliciousの持つ生産に少し変更したバージョンを実行していますよ。しかし、小さな問題があります。プラグインが必要な場合は動作しますが、Flashは通常、可視領域にあるときにアクティブになりますが、これは起こりませんので、ムービー/フラッシュのものは初期化されない可能性があります。
私は、ファントムと同様に動作するものを見つけることはできません。レンダリングを非同期のバックエンドプロセスとして扱い、メインのnode.jsプロセスのサブプロセスでファントムを実行し、それを1日と呼びます。 Webページをレンダリングするのは難しいですし、ファントムはWebKitに基づいているので、実際にそれを行うことができます。私は既存のブラウザレンダリングエンジンに組み込まれていないグラフィックファイルにWebページをレンダリングできるノードライブラリが存在するとは思わない。しかし、ある日、ファントムはノードとよりシームレスに統合されるでしょう。
チャレンジが受け入れられました –
私はフォローアップのリンク@David Murdochを徹底的に期待しています。 – NateDSaint
今日はちょっとハックしてしまいましたが、私が望んでいた限りでは得られませんでした。 jsdom、node-canvas、およびhtml2canvasを一緒にマッシュすることを計画していました。私はjsdomがディメンションを実装していなかったことを認識しませんでした。 :-( –
これはjavascript固有ではありませんが、役に立つと思うかもしれません。
「wkhtmltopdf」というWebkitベースのツールがあります。これは、QT Web-Kitウィジェットを使用したJavaScriptサポートが含まれていることを理解しています。 PDF形式のページの視覚的表現(必要に応じて「スクリーンショット」)を出力します。
FWIWは、それのためのPHPバインディングがここにもありますphp-wkthmltox
"ファイルへのレンダリング" "これは著者が意図したものだと思いますが、これはまともな答えです:) –
ノードキメラと呼ばれるプロジェクトがあります。 Phantomjsほど成熟していませんが、あなたが言及したすべての機能を備えています。ネイティブNodejで動作し、ページをファイルにレンダリングすることができます。リポジトリは、https://github.com/deanmao/node-chimeraです。それはあなたが必要とするものを正確に行うための例を持っています。
このプロジェクトの外観はもう管理されていないようです –
nightmareを試してみてください。それは電子を使います、それはファントムズよりも速く、APIは簡単で、最新のES6 javascriptを使用しています。
Chrome開発チームは、ノードで使用できるPuppeteerをリリースしました。 ヘッドレスオプションのChromeを使用しています。
- 1. マルチデバイスとブラウザの機能を備えたAPIデザイン
- 2. 配列、色、インタラクティブ機能を備えたJavaScriptを使用
- 3. 新しいタブ/ウィンドウで開く機能を備えたJavascriptリンク
- 4. ハイライトとドリルダウン機能を備えたJavaScriptチャート
- 5. 画像操作とズーム機能を備えたjavascriptライブラリ
- 6. ライブクリックイベント機能を備えたデータテーブル
- 7. ナビゲーション機能を備えたWPFコントロール
- 8. ブラウズ機能を備えたカスタムコンテンツパイプライン
- 9. フィルタリング機能を備えたインタラクティブなPDF
- 10. ドラッグ&ドロップ機能を備えたエキスパンドリストビュー
- 11. 複数の機能を備えたコントローラ
- 12. クレイジータイミング機能を備えたIE11 CSSアニメーション
- 13. CMS機能を備えたASP.NET MVC3アプリケーション
- 14. モノトーンダイアログドリルダウン機能を備えたニューススタイル要素
- 15. ファイルアップロード機能を備えたJQuery WYSIWYGエディタ
- 16. MSSQLのjson機能を備えたMSSQL2020
- 17. GXT - マルチセレクト機能を備えたComoboBox
- 18. ファイルブラウズ機能を備えたリモートコードエディタ
- 19. onclick機能を備えたシングルページのウェブサイト
- 20. アクセシビリティ機能を備えたブラウザでCSSまたはJavaScriptをサポートしていますか?
- 21. Android:Google機能のようなズーム機能を備えたグリッドビュー
- 22. オプションのUIインターフェースを備えたヘッドレスEclipseアプリケーションの作成
- 23. VB6 - スクリーンショット機能
- 24. 自動ドロップ機能と自動更新機能を備えたHTMLドロップダウンメニュー
- 25. 1つのシーケンス機能と3つの現在の機能を備えたLSTM
- 26. アンドロイドのスクリーンショット機能
- 27. ビデオ再生機能を備えたDirectXゲームエンジンを作成する
- 28. CRUD機能を備えたテーブルを埋め込む
- 29. 別のブラウザのJavaScriptの並べ替え機能
- 30. いくつかの機能を備えたPython Keylogger
jsdomを使用するプロジェクトを探しましたか?私はこれを行うためのいくつかがあることを知っています、名前を忘れてください – wesbos
ノードからphantomjsを実行できる新しいファントムノードラッパーがあります。それを試していませんが有望です:https://github.com/sgentle/phantomjs-node – ZimSystem
Wes、jsdomは、完全に非グラフィカルなインメモリデータ構造であるドキュメントオブジェクトモデルを作成し、操作します。この質問は完全に別の問題であるグラフィカルなWebページを完全にレンダリングすることに関するものです。 –