python - 将字符串转换为有效的 url 内容

标签 python url parameters

我需要分享这样的链接

mysite.com?url=https://anothersite.com&text=some text

所以一定是这样的

mysite.com?url=https%3A%2F%anothersite.com&text=some%20text

我可以使用这种方法得到它

def URL():
    try:
        text = 'some text'
        url = 'anothersite.com'
        parameters = 'url=%s&text=%s' % (url , text)
        for r,n in [(':','%3A') , (' ','%20') , ('/','%2F')]:
            parameters = parameters.replace(r,n)
        return 'mysite.com?%s' % parameters
    except Exception as e:
       print '%s (%s)' % (e.message, type(e))
       return ""

它可以工作,但我必须指定每个字符,因此如果我的文本有“#”,我必须将 , ('#','%23') 添加到我的列表中。

有什么好的方法可以解决这个问题吗?

最佳答案

使用urllib.quotestr.index 来分割字符串(如果需要分割):

link = 'mysite.com?url=https://anothersite.com&text=some text'

>>> link[:link.index('=')] + '=' + urllib.quote(link[link.index('=')+1:])
'mysite.com?url=https%3A//anothersite.com%26text%3Dsome%20text'

关于python - 将字符串转换为有效的 url 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21208040/

相关文章:

python - 删除标点符号后从文本文件中打印唯一单词列表,并找到最长的单词

python - 如何 pip 安装具有最小和最大版本范围的软件包?

java - Spring Boot 中的白色标签错误!可能是 URL 无法到达 Controller

java - 在查询参数中获取 "%"值的 charconversion 异常?

c++ - 以 qreal 引用作为参数的语法

python子进程: read from pipe without closing it

Python 在启动应用程序后退出

.net - .Net 上有 URL 验证器吗?

javascript - 为什么我的 Node 事件回调在事件中显示为未定义?

function - 定义旋转长度不固定的 rightrotate 函数