自动化“另存为内容HAR”

时间:2014-02-10 03:44:02

标签: javascript automation google-chrome-devtools browser-automation har

我熟悉如何使用Google Chrome网络检查器手动将网页另存为包含内容的HAR文件。我想自动化这个。

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

我试过以下没有运气:

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

您可以查看phantomjs,看起来它导出为HAR http://phantomjs.org/network-monitoring.html

答案 2 :(得分:1)

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

这是来自Fiddler的屏幕截图,您可以选择保存请求,包括标题。

enter image description here