2016-12-16 2 views
1

Ich habe die folgende URL urlquote, dass ich habe:Python way „non-standard“ Teile url

https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9 

Ich mag wäre es zu kodieren, so dass es wie eine normale URL aussieht, aber ist gültig . Zum Beispiel:

https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9 

Wenn ich jedoch den Standard urllib.quote verwenden kodiert sie alles:

>>> urllib.quote('https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9') 
'https%3A//www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9' 

Gibt es eine Python-Methode, die nur die Nicht-Standard-Teile der URL kodieren, das heißt , ohne die Schrägstriche und Doppelpunkte usw.?

Antwort

1

Sie wollen die 'sichere' Argument:

Wenn Sie auf Python3 sind, unter Verwendung von urllib.parse:

import urllib.parse 

x ='https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9' 
urllib.parse.quote(x, safe = ':/') 

aus:

'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9' 
1

Ein Beispiel für Python2

In [45]: scheme, netloc, path, query, fragment = urllib2.urlparse.urlsplit(url) 
In [60]: urllib2.urlparse.urlunsplit([scheme, netloc, urllib.quote(path), query, fragment]) 
Out[60]: 'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9' 
+0

Es gibt keine Querystring in meinem URL obwohl? – David542

+0

Darn, ich konnte es nicht schnell genug bearbeiten: \ – Kelvin