为什么browsermobproxy不能用于我的内部ip?

时间:2016-07-22 02:08:04

标签: python selenium proxy browsermob browsermob-proxy

虽然我习惯了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获得的两个回复。

10.203.9.156 google.com

有人可以解释这个的原因以及如何纠正这个问题吗?

1 个答案:

答案 0 :(得分:0)

BMP最有可能拒绝与主机的连接,因为https://10.203.9.156/login.html提供的证书对该IP地址无效。在嵌入式模式和命令行/独立/ REST API模式下,都有一个trustAllServers选项可以禁用证书检查。我不确定Python包装器是否公开了该选项;我建议咨询Pyhton包装器的文档,如果没有,则提交PR。