【问题标题】:how to convert the %3A and %2F to : and / in the url in python?如何在 python 的 url 中将 %3A 和 %2F 转换为 : 和 /?
【发布时间】:2016-12-12 13:47:47
【问题描述】:
如何转换 url 中的替换(%3A 和 %2F ...)。
网址
https://url/login_data.php?username=user&categoryid=0&URL=https%3A%2F%2Furl%2F%26TIME%3DFri%2520Aug%252005%25202016%252011%3A40%3A14%2520GMT%2B0530%28India%2520Standard%2520Time%29
必填网址
https://url/login_data.php?username=user&categoryid=0&URL=https://url/&TIME=Sat Aug 06 2016 11:42:36 GMT+0530 (India Standard Time)
我想知道有什么简单的方法可以做到这一点吗?
【问题讨论】:
标签:
python
python-3.x
url
【解决方案1】:
在python 2.7 中,使用urllib.unquote:
>>> import urllib
>>> urllib.unquote(urllib.unquote('https://url/login_data.php?username=user&categoryid=0&URL=https%3A%2F%2Furl%2F%26TIME%3DFri%2520Aug%252005%25202016%252011%3A40%3A14%2520GMT%2B0530%28India%2520Standard%2520Time%29'))
'https://url/login_data.php?username=user&categoryid=0&URL=https://url/&TIME=Fri Aug 05 2016 11:40:14 GMT+0530(India Standard Time)'
在python 3+ 中,使用urllib.parse.unquote
>>> from urllib.parse import unquote
>>> unquote(unquote("https://url/login_data.php?username=user&categoryid=0&URL=https%3A%2F%2Furl%2F%26TIME%3DFri%2520Aug%252005%25202016%252011%3A40%3A14%2520GMT%2B0530%28India%2520Standard%2520Time%29"))
'https://url/login_data.php?username=user&categoryid=0&URL=https://url/&TIME=Fri Aug 05 2016 11:40:14 GMT+0530(India Standard Time)'
【讨论】:
-
也只使用一次 unquote 来完成这项工作:'unquote("url/…)'
【解决方案3】:
对于python3,
import urllib.parse
urllib.parse.unquote_plus("https://url/login_data.php?username=user&categoryid=0&URL=https%3A%2F%2Furl%2F%26TIME%3DFri%2520Aug%252005%25202016%252011%3A40%3A14%2520GMT%2B0530%28India%2520Standard%2520Time%29")