是否有一个简单的方法来获取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"))
)