4

我熟悉如何使用 Google Chrome Web Inspector 手动将网页保存为包含内容的 HAR 文件。我想自动化这个。

在搜索自动生成 HAR 文件的工具时,我找到了一些解决方案,但它们都没有保存资源的内容。

我尝试了以下方法,但没有任何运气:

获取您请求的页面内容(原始 HTML)是可行的,但获取所有其他加载的网络资源(CSS、javascript、图像等)的内容是我的问题。

4

3 回答 3

5

我认为自动生成 HAR 的最可靠方法是使用BrowsermobProxy以及 chromedriver 和 Selenium。

这是 python 中的一个脚本,用于以编程方式生成 HAR 文件,该文件可以集成到您的开发周期中。它还捕获内容。

from browsermobproxy import Server
from selenium import webdriver
import os
import json
import urlparse

server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()

chromedriver = "path/to/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
url = urlparse.urlparse (proxy.proxy).path
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(url))
driver = webdriver.Chrome(chromedriver,chrome_options =chrome_options)
proxy.new_har("http://stackoverflow.com", options={'captureHeaders': True,'captureContent':True})
driver.get("http://stackoverflow.com")    
result = json.dumps(proxy.har, ensure_ascii=False)
print result
proxy.stop()    
driver.quit()

您还可以查看此工具,该工具从 Chrome 和 Firefox 无头生成 HAR 和 NavigationTiming 数据:Speedprofile

于 2015-08-16T13:50:32.817 回答
2

You might take a look at phantomjs, it looks like it exports as HAR http://phantomjs.org/network-monitoring.html

于 2014-02-14T16:59:59.797 回答
1

您可以使用 http 代理来保存内容。在 Windows 上,您可以使用免费的fiddler。在 Mac 和 Linux 上,您可以使用Charles Proxy,但它不是免费的。

这是 Fiddler 的屏幕截图,您可以选择保存请求的所有荣耀,包括标头。

在此处输入图像描述

于 2014-02-19T21:41:41.190 回答