Linuxでコマンドラインを介して指定されたURLからharファイルを生成する方法を誰かアドバイスできますか? 使用された詳細なツールとガイドラインは大歓迎です。
ありがとう
PhantomJS を使用して HAR ファイルを生成しましたが、Chrome や Firefox などの実際のブラウザーによって生成される HAR ファイルとは対照的に、信頼性は高くありません。Selenium と BrowsermobProxy を使用すると、次のような Python スクリプトを使用してブラウザーから直接 HAR ファイルを生成できます。
from browsermobproxy import Server
from selenium import webdriver
import json
server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()
profile = webdriver.FirefoxProfile()
profile.set_proxy(self.proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("http://stackoverflow.com", options={'captureHeaders': True})
driver.get("http://stackoverflow.com")
result = json.dumps(proxy.har, ensure_ascii=False)
print result
proxy.stop()
driver.quit()
Chrome と Firefox で HAR とパフォーマンス データをヘッドレスで生成するコマンド ライン ツールを探している場合は、Speedprofileをご覧ください。
Phantomjs の har ファイルは、アセットの簡略化されたリストです。つまり、Chrome または別のブラウザーで Web ページにアクセスすると、ファイルは数秒かけて読み込まれます。
しかし、phantomjs は、すべてのアセットが読み込まれる前に、その Web サイトのスナップショットを瞬時に取得します。
また、データ ファイルと画像ファイルも除外されます (これらは har 仕様の一部ではないため)。
この問題は、netsniff.js サンプル ファイルを変更することで回避できます。
私はそのプロジェクトをフォークし、以下のリンクでそれらの変更を行いました。har を生成する前に 20 秒待機するようにタイマーを設定したことに注意してください。また、js エラーを無視するためのエラー処理も少し追加しました。エラーが発生した場合に無効な har ファイルを作成する phantomjs に対処するために、エラー処理ビットが追加されました。(データ・画像ファイルを除外する機能もコメントアウトしました)
したがって、これはまさにあなたが望むものではないかもしれません。しかし、これは、phantomjs を使用しようとしているあなたや他の人にとっての出発点です。
これらの変更の後、常に 4 つのアセット ファイルを取得していたのが、約 25 になりました。
https://github.com/associatedpress/phantomjs/blob/netsniff-timer/examples/netsniff.js