URL编码和取消排序



我从网站地图和twitter上收集了一些链接。问题是有些链接是用阿拉伯语写的,比如

https://www.aljazeera.net/videos/2021/3/1/ياقوتيا-مدينة-روسية-يتجمد-فيها-كل-شيء

我正试图解开缩短的推特链接,并解码阿拉伯语编码的链接,以获得如下链接:

https://www.aljazeera.net/videos/2021/3/1/%D9%8A%D8%A7%D9%82%D9%88%D8%AA%D9%8A%D8%A7-%D9%85%D8%AF%D9%8A%D9%86%D8%A9-%D8%B1%D9%88%D8%B3%D9%8A%D8%A9-%D9%8A%D8%AA%D8%AC%D9%85%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%83%D9%84-%D8%B4%D9%8A%D8%A1

如果你的目标是获取一个包含奇数字符的url,并将其转换为%XX格式,你可以使用python的内置urllib来解码链接:

>>> import urllib
>>> oddlink = 'https://www.aljazeera.net/videos/2021/3/1/ياقوتيا-مدينة-روسية-يتجمد-فيها-كل-شيء'
>>> goodlink = urllib.parse.quote(oddlink)
>>> print(goodlink)
https%3A//www.aljazeera.net/videos/2021/3/1/%D9%8A%D8%A7%D9%82%D9%88%D8%AA%D9%8A%D8%A7-%D9%85%D8%AF%D9%8A%D9%86%D8%A9-%D8%B1%D9%88%D8%B3%D9%8A%D8%A9-%D9%8A%D8%AA%D8%AC%D9%85%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%83%D9%84-%D8%B4%D9%8A%D8%A1

请记住,它将在https%3A之后解析:。您可以手动覆盖:

>>> goodlink = goodlink[0:5] + ':' + goodlink[6:]
>>> print(goodlink)
https://www.aljazeera.net/videos/2021/3/1/%D9%8A%D8%A7%D9%82%D9%88%D8%AA%D9%8A%D8%A7-%D9%85%D8%AF%D9%8A%D9%86%D8%A9-%D8%B1%D9%88%D8%B3%D9%8A%D8%A9-%D9%8A%D8%AA%D8%AC%D9%85%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%83%D9%84-%D8%B4%D9%8A%D8%A1

或者,您可以将:添加为"安全"字符,这意味着urllib.parse将忽略它,并将其保留为:

>>> urllib.parse.quote(oddlink, safe='/:')

/是安全字符的一部分,因为它是链接的一个非常重要的部分:

https://www.google.com/ #with slash
https:%2F%2Fwww.google.com%2F #without slash

默认情况下,/字符包含在安全字符中,但在更改安全字符时,需要确保包含该字符。

相关内容

  • 没有找到相关文章

最新更新