2016-07-22 7 views
0

Während ich an Python gewöhnt bin, kenne ich nicht alle Protokolle, die vom Browser verwendet werden. Ich versuche nicht, einen Proxy für meinen Selen-Webdriver einzurichten, und das ist der Code, den ich verwende.Warum funktioniert Browsermobproxy nicht für meine interne IP?

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() 

Ich erhalte eine Fehlermeldung,

Unable to connect 

Dies ist die HAR, dass aus dem Proxy

{ 
"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" 
} 
} 
} 

Dies sind die beiden Antworten, die ich für die ip und Google bekam.

10.203.9.156 google.com

Kann jemand den Grund dafür erklären und wie dies zu korrigieren?

Antwort

0

Am wahrscheinlichsten lehnt BMP Verbindungen zum Host ab, da das von https://10.203.9.156/login.html vorgelegte Zertifikat für diese IP-Adresse nicht gültig ist. Sowohl im Embedded-Modus als auch im Befehlszeilen-/Standalone-/REST-API-Modus gibt es eine trustAllServers-Option, die Zertifikatsprüfungen deaktiviert. Ich bin mir nicht sicher, ob der Python-Wrapper diese Option verfügbar macht. Ich würde vorschlagen, die Dokumente für den Python-Wrapper zu konsultieren und einen PR einzureichen, wenn dies nicht der Fall ist.