Seite 1 von 1

SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 20:41
von blurry333
Hallo,

das ist ja das grosse Thema, dass es in Python 2 keinen Support für Zugriff auf https Websiten über einen Proxy gibt.
Geht das denn jetzt in Python 3 ??

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 20:44
von BlackJack
@blurry333: Ähm, wo hast Du die ”Information” denn her? Ich würde das `requests`-Modul für HTTP(S) empfehlen. Dann hat man bei Python 2 und 3 die gleiche API, die auch etwas hübscher ist als die aus der jeweiligen Standardbibliothek.

Edit: Python 2:

Code: Alles auswählen

In [40]: c = urllib2.urlopen('https://www.google.de/')

In [41]: d = c.read()

In [42]: len(d)
Out[42]: 17472

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 20:48
von blurry333
Hi,

also urllib2 unterstützt es auf keinen Fall. Und die wollte ich eigentlich verwenden. Ich weiss nicht ob das in Python3 anders ist.
Also in meinem Fall muss ich itunes aufrufen was https verwendet. Ups was ich total vergessen habe der Zugriff erfolgt mit Hilfe eines Proxys der Authentifizierung erwartet. Das ist das entscheidende dabei :) Sorry

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:06
von blurry333
Das requests Modul gehört wohl nicht zur Standardbibliothek ? Urllib2 dagegen ist Teil der Standardbibliothek aber die API hat sich von Python 2 zu Python 3 geändert ?

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:09
von BlackJack
@blurry333: Ja die API hat sich geändert, zumindest in soweit als da einiges an Modulen umbenannt/verschoben wurde, damit es ein wenig logischer/geordneter ist. `requests` hat aber auch auch eindeutig die schönere API, also nicht so einen halben Millimeter über der HTTP-Spezifikation, sondern so wie man das als Programmierer gerne hätte, in benutzbar. :-)

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:11
von blurry333
Aber requests ist nicht Teil der Standardbibliothek wohingegen Urllib2 schon ?

Aber weisst du ob das jetzt schon geht dass man https WEbsiten über einen Proxy abfragen kann ? Angeblich geht das nämlich nicht ?

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:18
von EyDu
blurry333 hat geschrieben:Aber requests ist nicht Teil der Standardbibliothek wohingegen Urllib2 schon ?
Und wo ist da nun genau das Problem? Einfach installieren und fertig. Warum willst du unnötige Umwege machen, wenn es auch einfach geht?

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:25
von blurry333
keine Ahnung ob mit requests Zugriff von https über proxy möglich ist

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:26
von cofi
Hast du auch nur mal in die Dokumentation von `urllib2` geschaut? https://docs.python.org/2/library/urllib2.html
Ggf musst du einen Opener mit HTTPS- und Proxy-Handler erzeugen.

Da `requests` aber eine reine Python Bibliothek ist verstehe ich nicht warum man nicht gleich `requests` benutzt.

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:42
von blurry333
ja ich kenn die Doku aber das ist mir echt zu umfangreich. Du würdest es also mit requests statt mit Urllib2 machen ?
Gibt es da ein verlässliches Code Beispiel . Also habe einen Proxy mit Authentifizierung.


Und kann mir mal einer diese Syntax in der Doku erklären z.B.

OpenerDirector.open(url[, data][, timeout])¶

Was will der denn übergeben bekommen ? Was ist [,data] . Ein array ? Warum das Komma zuerst ? Hab ich noch nie gesehen.

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:53
von BlackJack
@blurry333: Die eckigen Klammern bedeuten dass das optional ist, das ist keine Python-Syntax, und ein Komma braucht man um Argumente voneinander zu trennen.

Was `data` genau ist/sein muss steht bei `urlopen()`, worauf die Dokumentation von `OpenerDirector.open()` ja verweist.

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 21:56
von blurry333
Das mit dem optional hab ich verstanden , aber warum das Komma in den eckigen klammern ? Um Argumente zu trennen kenn ich nur das

funk(arg1, arg2, arg3 ) oder funk(arg1,[arg2], [arg3] )

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 22:00
von Sirius3
@blurry333: Deine Art zu fragen ist seltsam. Warum hören die sich alle wie Vorwürfe an?
Bei einem optionale Argument ist natürlich das Komma auch optional. Wenn kein zweites Argument angegeben wird, braucht man auch kein Komma.

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 22:00
von BlackJack
@blurry333: Na weil das Komma nur gesetzt wird wenn man auch das Argument angibt. Du schreibst ja beim Aufruf einer Funktion mit einem optionalen zweiten Argument nicht ``spam(42,)`` sondern nur ``spam(42)``, also wird die Signatur auch als ``spam(a [, b])`` angegeben. Denn wenn man `b` beim Aufruf weg lässt, lässt man auch das Komma davor weg.

Re: SSL Zugriff mit Python https

Verfasst: Montag 10. November 2014, 22:54
von blurry333
cute:)
hat mich jetzt trotzdem mehr verwirrt als geholfen. Ich mein dass man ein Komma weglässt wenn der Paramter optional ist
sollte ja selbstverständlich sein. Aber danke jetzt hab ichs verstanden :)

Re: SSL Zugriff mit Python https

Verfasst: Dienstag 11. November 2014, 08:35
von /me
blurry333 hat geschrieben:Ich mein dass man ein Komma weglässt wenn der Paramter optional ist sollte ja selbstverständlich sein.
Ist es aber nicht.

Hier mal ein Beispiel für VBA.

Code: Alles auswählen

Private Sub Test(Optional x As String = "x", Optional y As String = "y", Optional z As String = "z")
    Debug.Print x, y, z
End Sub

Public Sub Run()
    Test "a", , "b"
End Sub