Heim >Backend-Entwicklung >Python-Tutorial >Python-URL-Kodierung und URL-Spleißen

Python-URL-Kodierung und URL-Spleißen

高洛峰
高洛峰Original
2016-10-19 11:17:201753Durchsuche

urlencode Der Parameter der aufrufenden Methode

urlencode muss Dictionary sein

import urllib
d = {'name1':'www.pythontab.com','name2':'bbs.pythontab.com'}
print urllib.urlencode(d)

Ausgabe:

name2=bbs.pythontab.com&name1=www.pythontab.com

entspricht dem Zusammenfügen von zwei URL-Parametern. Diese Verwendung ähnelt http_build_query() in PHP. Wenn Sie interessiert sind, sehen Sie sich die Verwendung an dich selbst raus.

urlencode-Kodierung

Die Funktion urlencode ändert nicht die ursprüngliche Kodierung der eingehenden Parameter, was bedeutet, dass die Kodierung der Post- oder Get-Parameter vor dem Aufruf angepasst werden muss.

Problem: Simulieren Sie nun Anfragen an Google und Baidu. Da Baidu die gb2312-Codierung verwendet und Google die utf8-Codierung verwendet, sind die URL-Codewerte der von den beiden Websites an die URL übermittelten Parameter wie folgt „Chinesische PythonTab-Website“ zum Beispiel:

# coding: UTF-8
str = u'PythonTab中文网'
str = str.encode('gb2312')
d = {'name':str}
q = urllib.urlencode(d)
print q

Ergebnis:

name=PythonTab%D6%D0%CE%C4%CD%F8

Hinweis: Der Parameter von URL-Code muss Wörterbuch sein

Andere Verwendung

Der URL-Code in Django ist ähnlich, die Methode ist wie folgt:

from django.utils.http import urlquote
a = urlquote('PythonTab中文网')
print a

Holen Sie sich die GBK-Kodierung chinesischer Zeichen

urllib-Konvertierungszeichenfolge

Tatsächlich können Sie die Anführungszeichenfunktion von urllib verwenden, um das Chinesische in die URL umzuwandeln Konvertieren Sie die chinesische Codierung in die GBK-Codierung. Die resultierende Codierung ist eine URL, die dem URI-Standard entspricht.

>>> import urllib
>>> a = "PythonTab中文网"
>>> a
'PythonTab\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'
>>> urllib.quote(a)
'PythonTab%E4%B8%AD%E6%96%87%E7%BD%91'
>>>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn