虽然我习惯了python,但我并不熟悉浏览器使用的所有协议。我没有尝试为我的selenium webdriver设置代理,这是我使用的代码。
from browsermobproxy import Server, Client
server = Server('/Users/***/Downloads/browsermob-proxy-2.1.1/bin/browsermob-proxy')
server.start()
proxy = server.create_proxy()
profile = webdriver.FirefoxProfile()
profile.set_proxy(proxy.selenium_proxy())
driver = webdriver.Firefox(firefox_profile=profile)
proxy.new_har("10.203.9.156")
driver.get("http://10.203.9.156")
print json.dumps(proxy.har, indent =2) # returns a HAR JSON blob
server.stop()
driver.quit()
我收到错误说
Unable to connect
这来自代理的HAR
{
"log": {
"comment": "",
"creator": {
"comment": "",
"version": "2.1.1",
"name": "BrowserMob Proxy"
},
"version": "1.2",
"entries": [
{
"comment": "",
"serverIPAddress": "10.203.9.156",
"pageref": "10.203.9.156",
"startedDateTime": "2016-07-21T18:54:14.653-07:00",
"cache": {},
"request": {
"comment": "",
"cookies": [],
"url": "http://10.203.9.156/",
"queryString": [],
"headers": [],
"headersSize": 317,
"bodySize": 0,
"method": "GET",
"httpVersion": "HTTP/1.1"
},
"timings": {
"comment": "",
"receive": 0,
"send": 0,
"ssl": -1,
"connect": 7,
"dns": 0,
"blocked": 0,
"wait": 4
},
"time": 12,
"response": {
"status": 301,
"comment": "",
"cookies": [],
"statusText": "Moved Permanently",
"content": {
"mimeType": "",
"comment": "",
"size": 0
},
"headers": [],
"headersSize": 160,
"redirectURL": "https://10.203.9.156/login.html",
"bodySize": 0,
"httpVersion": "HTTP/1.1"
}
},
{
"comment": "",
"serverIPAddress": "10.203.9.156",
"pageref": "10.203.9.156",
"startedDateTime": "2016-07-21T18:54:14.684-07:00",
"cache": {},
"request": {
"comment": "",
"cookies": [],
"url": "https://10.203.9.156",
"queryString": [],
"headers": [],
"headersSize": 0,
"bodySize": 0,
"method": "CONNECT",
"httpVersion": "HTTP/1.1"
},
"timings": {
"comment": "",
"receive": 0,
"send": 0,
"ssl": -1,
"connect": 193,
"dns": 0,
"blocked": 0,
"wait": 0
},
"time": 194,
"response": {
"status": 0,
"comment": "",
"cookies": [],
"_error": "Unable to connect to host",
"statusText": "",
"content": {
"mimeType": "",
"comment": "",
"size": 0
},
"headers": [],
"headersSize": -1,
"redirectURL": "",
"bodySize": -1,
"httpVersion": "unknown"
}
}
],
"pages": [
{
"pageTimings": {
"comment": ""
},
"comment": "",
"title": "10.203.9.156",
"id": "10.203.9.156",
"startedDateTime": "2016-07-21T18:54:14.602-07:00"
}
],
"browser": {
"comment": "",
"version": "46.0",
"name": "Firefox"
}
}
}
这是我为ip和google获得的两个回复。
有人可以解释这个的原因以及如何纠正这个问题吗?
答案 0 :(得分:0)
BMP最有可能拒绝与主机的连接,因为https://10.203.9.156/login.html提供的证书对该IP地址无效。在嵌入式模式和命令行/独立/ REST API模式下,都有一个trustAllServers
选项可以禁用证书检查。我不确定Python包装器是否公开了该选项;我建议咨询Pyhton包装器的文档,如果没有,则提交PR。