問題タブ [phantomjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pdf - 多くのPDFをWebテクノロジーを使用して単一の複数ページのファイルにマージします
多くのページを持つ1つにマージする必要がある多くの単一ページのPDFファイルがあります(PDFはHTMLページから生成されます)。さらに、クロスOS、クロスブラウザーソリューションであり、サーバーで使用されるバックエンドテクノロジーに依存しない必要があります(Windows、Linux、およびOS Xで機能し、簡単にインストールできる必要があります)。私はファイルをPDF.js(Mozillaから)とマージすることを考えていましたが、私が読んだものから、FirefoxとChromeで適切なPDFのみがレンダリングされます(IEユーザーは除外されますか?)。ブラウザ/Web環境でこれを行うための他のオプションはありますか?商用アプリケーションで使用されるので、サードパーティのソフトウェアの場合は適切なライセンスも必要です。
node.js - NodeJS で Web サイトを読み込み、レンダリング前にページから要素を削除する
私は最近NodeJをいじり、ウェブサイトをロードしてスクリーンショットを保存しました。具体的には、PhantomJS を使用して Web サイトを読み込み、スクリーンショットを保存しました。私は CasperJS と ZombieJS も使用しましたが、これらのツールのいずれも、ロードする前に Web サイトのリソースをいじることを実際に許可していません。それは可能ですか?
明確にするために、私は任意のウェブサイトをロードしたいと思います.stackoverflow.comと言って、ロード時間を計算し、スクリーンショットを保存します. それは簡単ですが、2回目の実行では、同じWebサイトをロードして、たとえばjqueryリソースを削除し、そのロード時間を計算したいと考えています。
phantomjs と casperjs には onResourceRequested や onResourceReceived などのコールバックがあるようですが、リクエストを中止するメソッドはありません。出来ますか?これを行うphpスクリプトを介してリクエストをプロキシしたくありませんが、それが代替手段です。
ruby-on-rails - RubyOnRails上のPhantomJSを使用した動的ページのサーバー側レンダリング
90%JavascriptのWebページを作成しました。すべてのWebサイトは動的にレンダリングされます。
このコンテンツをサーバーでもレンダリングして、Googleがすべてのコンテンツとリンクをクロールしてインデックスに登録できるようにします。
グーグルによって禁止されないために、動的ページとサーバーレンダリングページのコンテンツはほとんど同じでなければならないことを私は知っています。
2つの異なるページをコーディングしたくありません(この場合、1つはハンドルバーを備えたクライアントからのもので、もう1つはERBを備えたサーバーからのものです)。
そこで、PhantomJSについて考えました。私が欲しいのは、グーグルから_escaped_fragment_パラメータを取得するときに、それなしでPhantomJSを使用してページを開き、これをPhantomJSからHTMLにレンダリングして、サーバーからGoogleに返すことです。このように、私は何かのために2つの異なるページを作成する必要はありません。
サーバーサイドテンプレートにもハンドルバーを使用できることは知っていますが、とにかくすべてを2回コーディングする必要があります。
PhantomJSでこれを達成する方法を知っている人はいますか?ロジックとコードを2回繰り返さず、Googleにサイトのインデックスを作成させる他の方法はありますか?
ありがとう!!!
javascript - phantomjs javascriptはローカルファイルを1行ずつ読み取ります
ファイルを 1 行ずつ読み取るために JavaScript を使用したことがないので、phantomjs は私にとってまったく新しい球技です。ファントムに read() 関数があることは知っていますが、データを変数に格納した後にデータを操作する方法が完全にはわかりません。私の疑似コードは次のようなものです:
誰かが実際のコード構文で私を助けてくれれば、phantomjsが典型的なjavascriptを受け入れるかどうか、または何を受け入れるかについて少し混乱しています.
javascript - PhantomjsでGoogleFeedAPIを使用する
このGoogleフィードAPIの例を、Phantomjsで動作するように翻訳しようとしています。Phantomjsの例に従って、次のようになります。
出力は次のようになります。
私はvargoogleを定義しようとしました。インクルードの直後ですが、運がありません。私はPhantomjsとjs全般に不慣れです。どんなポインタでも大歓迎です。
php - PHP を介して PhantomJs で複数の html ファイルを開くと、構文エラーがスローされる
PHP スクリプトでコマンド ラインから phantomjs を呼び出して、多数の html ファイルから複数の pdf を生成するようにします。したがって、html ファイルへのパスを含む連結文字列があり、次にexec
commandを呼び出します。
「phantomjs render.js "file1.html|file2.html"」を呼び出すと、すべて正常に動作します。しかし、php スクリプトからこれを実行しようとすると、Apache の error_log に次のエラーが表示されます。
私が使用している HTML ファイルは問題ないように見えるので、何が原因なのかわかりません。ブラウザでこのスクリプトを実行したときの出力Array ( ) 1
は、コマンドラインで取得しているテキストではなく、次のとおりです。
以下は、PhantomJs レンダリング スクリプトです。
ruby-on-rails - Railsアプリ内からシステムコールのパスを設定するには?
レールからphantom.jsモジュールを実行しようとしています。これまでのところ、バイナリのインストールに成功しており、phantomjs のパスは正常に機能しているようです。
ただし、バックティックを使用して Rails アプリから実行しようとすると (たとえば、phantomjs rasterize.js http://google.com 1.jpg)、No such file or directory と表示されます。
その理由は、rasterize.js のパスが見つからないためだと思います。rasterize.js ファイルを #{Rails.root}、public フォルダー内、controller フォルダー内に配置しようとしましたが、何も機能しません。
どうすればこの問題を解決できますか?
====
更新:明確にするために、コントローラー内で機能するコードと機能しないコードを投稿しています。
<= 上記のコードではパス エラーが吐き出されず、ブラウザからリクエストを送信すると、phantomjs プロセスが呼び出され、サーバー側でコンソールが開かれます。
<=これは機能せず、「そのようなファイルまたはディレクトリはありません」というエラーが吐き出されます。これが、Railsがrasterize.jsのパスを見つけることができないことに関係していると思う理由です。私は、rasterize.js を public フォルダー内、controllers フォルダー内、メイン ディレクトリ: #{Rails.root} 内に配置しようとしましたが、常に同じです。
dpi - render() を使用して画像出力の DPI を制御する
phantomjsを使用して、メソッドを使用して Web コンテンツの画像をラスタライズするときに使用される DPI 設定を制御する方法はありpage.render(filename)
ますか?
インターフェイス apiを介してこれを制御するものは何も見つかりませんが、誰かがこれを行う方法をすでに考え出しているかどうかはわかりませんでした。
私たちのビジネスケースは次のようになります。
Web アプリケーションで作成されたカスタム HTML コンテンツは、rasterize.js ファントム プロセスに送られ、特定のタグを照会してクライアントの四角形を設定します。このクライアントの四角形は HTML の PNG にレンダリングされ、他の場所で画像として使用できます。
結果として得られる PNG の解像度をデフォルトよりも高くする必要があります。これは、奇妙なフォント サイズ/太字の組み合わせでテキストにエイリアシングが発生するためです。
javascript - シバンを使用することは可能ですが、どういうわけかJavaScriptインタープリターから「隠す」ことはできますか?
私の質問は解読するのがかなり難しいと思います(自由に完成させてください)。しかし、これはスクリプト (特にこの場合は JavaScript) でのシバン行の使用に関連しています。phantomjs
このスクリプトがあるとしましょう:
これは非常にばかげた質問だと思いますが、
上記のコードのようなシバン行を保持できるようにする可能なトリックはありますか?(この場合)スクリプト実行の前にプレフィックスを付けずにファイルを実行できphantomjs
、JavaScriptでエラーなしで解釈できますか? ?
そうでない場合、シバン行を「受け入れる」他の言語インタープリター (Ruby、Python など) はありますか?
javascript - phantomjsで動的にロードされた要素にアクセスする
ページイベントを送信しています:
page.sendEvent('click', 650, 430);
これにより、ajaxを介して要素を動的にロードするリンクをクリックします。この動的にロードされた要素に経由でアクセスするには遅すぎますpage.evaluate
か?ページ上で動的に作成されたものでは、何も返すことができないようです。