Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “自动化”;另存为HAR,内容为“;_Javascript_Automation_Google Chrome Devtools_Browser Automation_Har - Fatal编程技术网

Javascript “自动化”;另存为HAR,内容为“;

Javascript “自动化”;另存为HAR,内容为“;,javascript,automation,google-chrome-devtools,browser-automation,har,Javascript,Automation,Google Chrome Devtools,Browser Automation,Har,我熟悉如何使用Google Chrome Web Inspector手动将网页保存为包含内容的HAR文件。我想自动化这个 在搜索自动生成HAR文件的工具时,我找到了一些解决方案,但没有一个能够保存资源的内容 我尝试了以下方法,但没有任何运气: 获取您请求的页面内容(原始HTML)是可行的,但是获取加载的所有其他网络资源(CSS、javascript、图像等)的内容是我的问题所在。您可以看看,它看起来像是导出为HAR您可以使用http代理来保存内容。在windows上,您可以使用免费的。在

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

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

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


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

您可以看看,它看起来像是导出为HAR

您可以使用http代理来保存内容。在windows上,您可以使用免费的。在Mac和Linux上,您可以使用,但这不是免费的

这是Fiddler的一个屏幕截图,您可以选择将请求保存在所有页面中,包括标题


我认为自动生成HAR的最可靠方法是与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数据:

Ack,对不起,我没有注意到netsniff.js是phantomjs的扩展。您找到方法了吗?@Monodeep我从来没有找到解决方案谢谢您的回复。我找到了一个解决方案,我正在成功地使用它。它使用Selenium、Firebug和NetExport(Firefox扩展)。如果您仍然需要它,我可以在这里发布代码(我已经用python编写了代码)供您参考:
--content
选项。谢谢!我还没有机会测试这个,但它看起来很有希望。我观察到使用代理会导致比通常更大的计时。有没有一种方法可以让HAR在没有代理的情况下获得正确的时间安排?上述方法似乎对无头chrome不起作用。因此,如果我提供chrome\u options.add\u参数(“--headless”),生成的json并不包含所有HTTP请求。