5

Linuxでコマンドラインを介して指定されたURLからharファイルを生成する方法を誰かアドバイスできますか? 使用された詳細なツールとガイドラインは大歓迎です。

ありがとう

4

3 に答える 3

2

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をご覧ください。

于 2015-08-18T15:46:36.347 に答える
1

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

于 2016-09-29T16:37:32.340 に答える