我无法使用 urllib2.urlopen() 请求 url“http://www.besondere-raumdüfte.de”。
我尝试使用带有 utf-8、idna、ascii 的 urllib.urlencode 对字符串进行编码,但仍然无法正常工作。
提高URLError: <urlopen error unknown url type
。
问问题
2133 次
2 回答
2
你需要的是u"http://www.besondere-raumdüfte.de/".encode('idna')
. 请注意源字符串如何是 Unicode 常量(u
前缀)。
结果是一个可用于 的 URL urlopen()
。
如果您的域名包含非 ASCII 字符,并且URL 的其余部分包含非 ASCII 字符,.encode('idna')
则需要域部分和iri2uri()
其余部分。
于 2012-03-27T12:15:50.520 回答
0
您正在使用iri而不是uri,您需要做的是正确转换它。以下是有关如何执行此操作的示例:
from httplib2 import iri2uri
def iri_to_uri(iri):
"""Transform a unicode iri into a ascii uri."""
if not isinstance(iri, unicode):
raise TypeError('iri %r should be unicode.' % iri)
return bytes(iri2uri(iri))
一旦你有了一个 uri,你应该能够使用 urllib2。
于 2012-03-27T10:00:28.790 回答