我熟悉如何使用Google Chrome Web Inspector手动保存包含内容的网页为HAR文件。现在我想自动化这个过程。
在寻找自动化生成HAR文件的工具时,我发现了一些解决方案,但是它们都没有保存资源的内容。
我已经尝试了以下方法,但没有成功:
获取您请求的页面内容(原始HTML)是可行的,但获取加载的每个其他网络资源的内容(CSS、Javascript、图像等)是我的问题所在。我熟悉如何使用Google Chrome Web Inspector手动保存包含内容的网页为HAR文件。现在我想自动化这个过程。
在寻找自动化生成HAR文件的工具时,我发现了一些解决方案,但是它们都没有保存资源的内容。
我已经尝试了以下方法,但没有成功:
获取您请求的页面内容(原始HTML)是可行的,但获取加载的每个其他网络资源的内容(CSS、Javascript、图像等)是我的问题所在。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
--content
选项实现该功能。 - cYrus