栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

标签为空或太长-python urllib2

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

标签为空或太长-python urllib2

问题是您的URL无法按照

IDNA
rules正确编码,该规则控制如何转换国际化域名:

域名的ASCII和非ASCII形式之间的转换是通过称为ToASCII和ToUnipre的算法完成的。这些算法不适用于整个域名,而是应用于单个标签。例如,
**如果域名为www.example.com,则标签为www,example和com。 ToASCII或ToUnipre 分别应用于这三个 。**

这两种算法的细节很复杂,并且在RFC 3490中进行了指定。以下概述了它们的功能。

ToASCII保留任何ASCII标签不变, 但如果该标签不适用于域名系统则会失败。
如果给定的标签至少包含一个非ASCII字符,则ToASCII将应用Nameprep算法,该算法会将标签转换为小写并执行其他归一化处理,然后在使用四个字符之前,先使用Punypre
[16]将结果转换为ASCII。字符串“ xn-”。[17]
这四个字符的字符串称为ASCII兼容编码(ACE)前缀,用于区分Punypre编码的标签和普通的ASCII标签。ToASCII算法可能会以多种方式失败。例如,最终字符串可能超过DNS名称的63个字符的限制。ToASCII失败的标签不能在国际化域名中使用。

在您的情况下,“(空白)”不是有效的域名字符,您最终得到以下结果:

>>> '.f.de'.enpre('idna')Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/lib/python2.6/encodings/idna.py", line 164, in enpre    result.append(ToASCIi(label))  File "/usr/lib/python2.6/encodings/idna.py", line 73, in ToASCII    raise UnipreError("label empty or too long")UnipreError: label empty or too long

如果将域名更改为“ afde”,则不应引发此异常。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号