Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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
Python 如何从Browsermob代理获取标题?_Python_Selenium Webdriver_Browsermob Proxy_Har - Fatal编程技术网

Python 如何从Browsermob代理获取标题?

Python 如何从Browsermob代理获取标题?,python,selenium-webdriver,browsermob-proxy,har,Python,Selenium Webdriver,Browsermob Proxy,Har,我需要的:会话的代理服务器日志文件包含流量/响应的内容/文本。 我拥有的:正在使用silenium webdriver和browsermobproxy服务器日志(*但没有标题!) 在本地主机上工作的browsermob代理:8080/proxy/8081 部分代码: bmp_path = "path-to-browsermob-proxy.bat" server = Server(path=bmp_path) server.start() proxy_server = server.create

我需要的:会话的代理服务器日志文件包含流量/响应的内容/文本。 我拥有的:正在使用silenium webdriver和browsermobproxy服务器日志(*但没有标题!)

在本地主机上工作的browsermob代理:8080/proxy/8081

部分代码:

bmp_path = "path-to-browsermob-proxy.bat"
server = Server(path=bmp_path)
server.start()
proxy_server = server.create_proxy()
proxy_server.new_har()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server={}'.format(proxy_server.proxy))
browser = webdriver.Chrome("path-to-chromedriver.exe",chrome_options=chrome_options)
browser.get('www.demowebsite.com')
打印时:

pprint(proxy_server.har)
{“log”:{“version”:“1.2”,“creator”:{“name”:“BrowserMob Proxy”,“version”:“2.1.4”,“comment”:“}”,pages:[{“id”:“Page 0”,“startedDateTime”:“2019-10-03T15:17:20.385+03:00”,“title”:“Page 0”,“pagetimes”:{“comment”:“}”,“comment”:“}],“entries”:[],“comment”:“}}

到目前为止一切都很好,现在事情是这样的

当我向新添加任何参数时,如:

或:

始终从服务器获得500响应:

r = requests.put('%s/proxy/%s/har' % (self.host, self.port), payload)
访问/proxy/8081/har时出现问题。原因:服务器错误

{JSONDecodeError}应为值:第1行第1列(字符0)

看起来我无法向代理服务器发出请求?
感谢您的帮助

这可能不会完全奏效,我也面临着同样的问题。 这就是我所做的:

rput = requests.put('http://localhost:8080/proxy/8082/har',headers={"Content-Type":"application/json"},data={"captureHeaders":True,"captureCookies":True,"captureContent":True})
看起来Browsermob代理不喜欢使用params参数。相反,尝试用数据发送您的请求


注意:我仍然无法获取所有的头和cookie,如果您能弄明白,我将非常感谢您让我知道:)

尝试清除与代理实例关联的DNS缓存

proxy_server.clear_dns_cache()

这是个好主意。我得到了200个好的,但对我来说仍然没有标题,它只显示了我的请求标题(这对于我正在做的事情来说已经足够好了)。它不显示响应头。您是否尝试过从PowerShell/CMD初始化它?
rput = requests.put('http://localhost:8080/proxy/8082/har',headers={"Content-Type":"application/json"},data={"captureHeaders":True,"captureCookies":True,"captureContent":True})
proxy_server.clear_dns_cache()