Punycode 域不适用于请求



是否有一个简单的方法来获取punycode域?我尝试使用请求模块,但它没有工作。

下面的代码不起作用:

import requests
requests.get("https://💩.la")
InvalidURL: Failed to parse: https://💩.la

使用Python 3.10.4,requests==2.28.1,urllib3==1.26.13

我用下面的函数

解决了这个问题
from urllib.parse import urlparse, urlunparse

def convert_idna_address(url: str) -> str:
parsed_url = urlparse(url)
return urlunparse(
parsed_url._replace(netloc=parsed_url.netloc.encode("idna").decode("ascii"))
)

最新更新