2016-06-04 8 views
0

Ich weiß, wenn ich will eine HTTP-Anforderung senden, kann ich es als Wörterbuch bilden, bevor sie zu senden:Wie kann ich Python-Requests URL dekodieren?

payload = dict(
    username="something", 
    password="something_else" 
) 

r = requests.get('http://example.com', params=payload) 

Ist es auch das Gegenteil tun? Wenn mein Wunsch mich auf eine andere URL umleiten geschieht, kann ich sehen, wo ich mit umgeleitet wurde:

print r.url 

Aber wenn das URL geschieht wie etwas zu sein:

http://example.com/somepage.htm?varone=test&vartwo=3451&varthree=something 

und ich passieren zu wollen, Ziehen Sie die vartwo aus dieser URL (die Zeichenfolge 3451), bietet das Requests-Modul eine einfache Möglichkeit, dies zu tun, nur indem Sie angeben, dass ich den Wert von "vartwo" möchte? Ein anderes Wörterbuch oder ein Mapping-Objekt vielleicht? Oder ist meine einzige Option, urlib.unquote zu verwenden, um die URL zu dekodieren und als String zu analysieren?

+2

http://stackoverflow.com/questions/28328890/python-requests-extract-url-parameters-from-a-string –

+0

auch http://stackoverflow.com/questions/10113090/best-way -parse-a-url-Abfragezeichenfolge –

Antwort

0

Verwenden Sie urlparse module (Python 2.x; in Python 3.x wurde es in urllib.parse umbenannt).

from urlparse import urlparse 

url = 'http://www.gurlge.com:80/path/file.html;params?a=1#fragment' 
o = urlparse(url) 

print o.params 
Verwandte Themen