在python3.x中,我试图用requests.get()
获得以下URL:http://www.finanzen.net/suchergebnis.asp?strSuchString=DE0005933931(这个URL由一个带有搜索字符串DE0005933931
的基URL组成)。在
请求被重定向(通过HTTP状态代码301)到浏览器中的http://www.finanzen.net/etf/ishares_core_dax%AE_ucits_etf_de(在URL中包含character 0xAE字符®)。将requests.get()
与重定向的URL一起使用也可以。在
当尝试使用Python 2.7获取搜索字符串URL时,一切正常,我得到重定向响应,使用Python 3.x得到以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 21: invalid start byte
测试此项的代码段:
^{pr2}$更多信息:
requests.__version__ = '2.18.4'
开发windows7,但是我
其他Python版本(3.4、3.5)也会出现相同的错误。在Internal Server Error
和https://www.hurl.it试图获得上述URL。也许这不是Python的问题。在你知道为什么这在Python2.7中有效,而在Python3.x中不行,我能做些什么?在
服务器以一个编码为Latin-1的URL进行响应,而不是URL编码的URL;非ASCII字节显示为
0x??
十六进制转义符:0xAE字节没有有效的URL字符;服务器在此违反了标准。他们应该发送的是
^{pr2}$或者
对URL的拉丁语-1或UTF-8编码使用转义数据。在
我们可以通过返回未更改的
Location
头来修补requests
以使其在面对此错误时更加健壮:应用此修补程序后,重定向按预期工作。在
改进位置处理。在
相关问题 更多 >
编程相关推荐