問題タブ [headless-browser]
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.
python - Pythonを使用してHTMLページのjavascriptブロックで定義されたJSONオブジェクトを抽出するには?
次の方法でデータが定義された HTML ページをダウンロードしています。
「window.blog.data」で定義された JSON オブジェクトを抽出したいと思います。手動で解析するよりも簡単な方法はありますか? (私は Beautiful Soap を調べていますが、解析せずに正確なオブジェクトを返すメソッドが見つからないようです)
ありがとう
編集: Python ヘッドレス ブラウザ (Ghost.py など) でこれを行うことは可能であり、より正確でしょうか?
javascript - 独自のヘッドレス ブラウザを備えた Heisenbug
私は、JavaScript をサポートする WebKit (C++/Qt4 を使用) に基づくヘッドレス ブラウザーに取り組んでいます。これの主な目的は、JavaScript に大きく基づいた Web サイトの HTML スパンショットを生成できるようにすることです (Backbone.js またはその他の JavaScript MVC を参照してください)。
ページが完全にロードされたことを知る方法がないことを認識しています (この質問を参照してください)。そのため、loadFinished
シグナルを取得した後 (ドキュメントはこちら)、タイマーを作成し、DOM コンテンツのポーリングを開始します ( DOM のコンテンツを X ミリ秒ごとにチェックして、変更があったかどうかを確認します。ない場合は、ページが読み込まれたと想定して結果を出力します。これが完璧に近い解決策ではないことは既にわかっていますが、私が考えることができる唯一の解決策であることに注意してください。もっと良いアイデアがあれば、この質問に答えてください
注: タイマーは非ブロックです。つまり、WebKit 内で実行されているすべてのものが影響を受けたり、ブロックされたり、一時停止したりしてはなりません。
いくつかのページでヘッドレス ブラウザをテストした後、すべてが正常に (または少なくとも期待どおりに) 動作するようです。しかし、ここにハイゼンバグが現れます。ヘッドレス ブラウザは PHP スクリプトから呼び出す必要があります。PHP スクリプトは出力を待って (呼び出しをブロック)、出力します。
私のテスト マシン (Apache 2.3.14、PHP 5.4.6) で PHP スクリプトを実行すると、目的の結果が出力されます。つまり、ヘッドレス ブラウザーが Web サイトを取得し、JavaScript を実行して、ユーザーに表示される内容を出力します。ただし、本番サーバーで同じスクリプトを実行すると、Web サイトが取得され、JavaScript コードの一部が実行され、結果が出力されます。
ヘッドレス ブラウザのソース コードと、私が使用している PHP スクリプトは、ここにあります。
注: タイマー (ヘッドレス ブラウザーのソース コードで確認できるように) は 1 秒に設定されていますが、より長い時間を設定しても問題は解決しません。
注 2: すべての JavaScript エラーをキャッチしても何も表示されないため、関数の欠落、引数の誤り、またはその他の不正なコードが原因ではありません。
2 つの Web サイトでヘッドレス ブラウザをテストしています。 これはテスト マシンと実稼働サーバーの両方で動作していますが、これはテスト マシンでのみ動作します。
これは、最初の Web サイトの完全な HTML スナップショットを生成するため、ヘッドレス ブラウザーのコードではなく、2 番目の Web サイトの JavaScript コードの奇妙なバグであると考える方が適切ですが、繰り返しになりますが、これはハイゼンバグなので、何が原因なのかよくわかりません。
任意のアイデア/コメントをいただければ幸いです。ありがとうございました
javascript - CasperJSは、forループのように複数回送信して評価します
私はCasperJSを使用して、通常は多くの時間を必要とするいくつかのステップを自動化しようとしています。基本的に、CMSにログインして、いくつかのプラグインがインストールされているかどうかを確認する必要があります。それらが更新されている場合は更新しますが、そうでない場合は作成します。ログインしてプラグインのリストが表示されたページにアクセスできましたが、ここで問題が発生しました。これが私が擬似コードで行う必要があることです:
これがコードです
フォームが連続して複数回送信され、「その後」のステップで同じページを複数回キャプチャすることになります...これを解決するにはどうすればよいですか?
objective-c - iOS用のヘッドレスブラウザ?
基本的に、私がやろうとしているのは、Webサイトにアクセスし、ログインして、特定の情報をダウンロードするアプリケーションを作成することです。これを行う最も効率的な方法は、「ヘッドレスWebブラウザー」、つまりHTMLUnitなどのフロントエンドのないWebインターフェースを使用することであると言われています。しかし、objective-cではそのようなものを見つけることができませんでした(これはiOSアプリです)。誰かが私がどこでそれを見つけることができるか知っていますか?
ありがとう、
HBhargava
capybara - CapybaraPoltergeist-サイトにCookieを有効にするメッセージが表示されます
ヘッドレステストのために、Poltergeist1.0.1でCapybara1.1.2を実行しています。テストはセレンドライバーで正常に実行されます。ただし、ポルターガイストの場合、サイトのスナップショットにはCookieが無効になっていると記載されています。設定がありませんか?Cookieはデフォルトで有効にすべきではありませんか?
javascript - スクリーンショットをレンダリングするときにPhantomJSに背景画像を含めるにはどうすればよいですか?
https://github.com/ariya/phantomjs/wiki/Screen-Captureで詳しく説明されているように、page.render()メソッドを使用して、PhantomJSを使用してWebページのスクリーンショットを撮っています。
背景画像を除いて正常に動作します。すべて空白で表示されることがあります。http://screener.brachium-system.net/にアクセスしてURLとしてhttp://www.bing.com/と入力すると、問題の例を見ることができます。背景画像が必要な場所に大きな空きスペースがあります。なれ。
背景画像を強制的に表示する方法はありますか?
python - GAE 用の Python ヘッドレス ブラウザ
Google Appengine の webapp2 で Angular.js クライアント側を使用しようとしています。
SEO の問題を解決するために、ヘッドレス ブラウザを使用して JavaScript をサーバー側で実行し、結果の html をクローラーに提供するというアイデアが考えられました。
Google App Engine で動作する Python 用のヘッドレス ブラウザはありますか?
phantomjs - Behat を使用してローカル PHP Web アプリをテストすると、Sahi + PhantomJS が失敗する
behat+sahi+phantomjs が設定されたローカルでホストされている Web アプリケーションのテストで問題が発生しています。
- behat + sahi + chromeだけで完全なスイートを実行しましたが、正常に動作します
- また、うまく機能するライブ スタイルに対して小さなサンプル ビート テストをテストしました。
この問題は、base_url をローカルでホストされているアプリまたはそのアプリがデプロイされているサーバーのいずれかに向けると発生するようです
これと同じくらい簡単なもの:
この出力の結果:
ここで詳述されているセットアップを使用しています: http://shaneauckland.co.uk/2012/11/headless-behatmink-testing-with-sahi-and-phantomjs/
これは構成の問題ですか? それとも、アプリが localhost でもホストされているためですか?
これをさらにトラブルシューティングするにはどうすればよいですか?
ありがとう
java - Java でページを「参照」してフォームを送信する最も簡単な方法
私がする必要があるのは、Web ページを参照してログインし、そのサイトでログインが必要な別の Web ページを参照することです。そのため、Cookie を保存する必要があります。その後、そのページの要素をクリックしてフォームに入力し、Web ページから返されたメッセージを受け取る必要があります。リンクに直接移動すると仮定して、実際にページに移動してボタンをクリックする必要がある理由は、ログインしてリンクをクリックするたびにセッション ID が割り当てられ、常に異なるためです。ボタンは次のようになります。通常の href リンクではありません。
とにかく、これを行う最も簡単な方法は何ですか?ありがとう。
更新: HTMLunit やその他のヘッドレス ブラウザー ライブラリを試してみたところ、「ヘッドレス」を使用しているようには見えません。このページについて私が最近知ったもう 1 つのことは、すべての HTML が何らかの奇妙な形式になっていることです... すべてが script タグ内にあるということです。これがサンプルです。
ボタンの要素を検査すると、上で投稿したボタンの HTML コードが表示されますが、ソースを表示すると表示されません。基本的に、私がする必要があるのは、ある種の GUI を使用して、ユーザーにリンクに移動させ、プログラムに情報を入力させることです。誰も私がこれを行う方法を知っていますか? ありがとう。
c++ - これらのプログラミング言語用のヘッドレスブラウザライブラリ
HtmlUnitは、Javaをベースにしたヘッドレスブラウザライブラリです。C / C ++、D、Goプログラミング言語用のヘッドレスブラウザライブラリはありますか?