2016-04-13 7 views
1

Kann ich nach Verwendung von webbrowser.get Informationen über den Inhalt der Variablen 'a' erhalten? Ich kann nicht mehr als 'webbrowser.WindowsDefault Objekt bei 0x024643B0' bekommen. Ich würde gerne wissen, welche Standard-Browser und übertrage diese Informationen an ZeichenfolgeKönnen Sie Inhalte von webbrowser.get in Python bekommen?

import webbrowser 
a = webbrowser.get('windows-default') 
print a 
a.open('http://www.google.com') 
+0

Was gibt 'print a.name' zurück – Dobz

+0

webbrowser.WindowsDefault Objekt bei 0x024643B0 – JeremyK

Antwort

0

Hier ist eine zweistufiger Lösung:

  1. die Klassennamen des Browsers Objekts erhalten, indem Sie: type(a).__class__
  2. ein Wörterbuch erstellen, wo Sie Klassennamen an einen Browser Typname einen Browser abzubilden.

Details:

Wenn Sie a = webbrowser.get('windows-default') ausführen, können Sie die Klassennamen eines von erhalten: browser_class = type(a).__class__.

Basierend auf below picture, können Sie die Methode Code in wie folgt gekennzeichnet:

def which_browser(browser_class): 
    return{ 
     'Mozilla': 'firefox', 
     'Chrome' : 'google-chrome'   
    }.get(browser_class,'firefox') 

Diese Methode gibt den Browser-Typ Name auf dem Browser-Klassennamen ab, die Sie in browser_class oben erhalten. Beachten Sie, dass ich die Methode, die zurückgegeben wird, standardmäßig mozilla, aber das ist nicht unbedingt für einen einfachen Test festlegen. Ich meine, können Sie einfach laufen:

def which_browser(browser_class): 
    return{ 
     'Mozilla': 'firefox', 
     'Chrome' : 'google-chrome'   
    } 

können Sie dann which_browser() Methode rufen Sie den Browser-Typ-Namen zu erhalten:

browser_name = which_browser(browser_class) 

BROWSER_NAME ist vom Typ str, wie Sie es möchten.

Sie können diese Informationen müssen oben verlinkten:

enter image description here

Volles Programm:

Getestet habe ich den folgenden Code nach dem, was ich habe auf meinem Linux-Rechner, wo ich nur zwei Browser installiert haben :

import webbrowser 

a = webbrowser.get('windows-default') 

def which_browser(b): 
    return{ 
     'Mozilla': 'firefox', 
     'Chrome' : 'google-chrome'   
    }.get(b,'firefox') 

print which_browser(type(a).__class__) 

Nach dem Ausführen des Programms, erhalte ich diese Ausgabe: firefox.

+0

Es funktioniert nicht, es gibt nur Wörterbuch zurück und ich könnte falsch sein, aber es sieht so aus, als ob Sie schon im Programm antworten, anstatt danach zu fragen . – JeremyK

+0

Was funktioniert nicht? Und nein, ich gebe keine Antwort auf das Programm im Voraus. Die Tatsache, dass Sie sagten, dass das Programm ein Wörterbuch zurückgibt, bedeutet, dass Sie nicht einmal versucht haben, es zu starten, also viel Glück. –

Verwandte Themen