繁体   English   中英

python中的URL编码/解码(整个网址,而不仅仅是路径)

[英]URL Encoding/Decoding in python (whole url, not just the path)

我做了很多搜索和实验,但我找不到解决方案。 所以,如果我错过了一些微不足道的事情,我会提前道歉。

问题:

我有一个python turbogears应用程序正在下载网址资源。 它被给予客户端下载的URL。

一个客户特别发送未转义的网址。 例如,' http://www.foo.com/file with space.txt'

当我尝试下载它时,下载失败,因为服务器无法识别此URL。 它需要将空间转义为有效的URL。

我知道有一些方法(urllib.urlencode / urllib.quote等)将编码字符串。 但是他们认为他们使用的字符串不是网址。 如果您为这些方法提供URL,它们将逃避URL的方案,并使其更加无效。

因此,摘要是:如何在python中覆盖整个完全限定的URL?

注意:我尝试使用urlparse解析url组件以获取路径。 但是有时url会有查询参数,片段等等。因此,我不想编写将url拆分为其部分的代码,只从path + query + fragment中转义所需的内容,然后重构url。

是否有任何辅助函数直接获取url并逃脱它?

另请注意,有时我会从客户端获得有效的转义网址。 所以,我也想处理它们,而不是双重逃避它们。

好的,我在pypi上发现了以下内容。 这似乎解决了这个问题。

https://github.com/seomoz/url-py/

这是来自seomoz的url蛋。 似乎很好地完成了这项工作。

您可以使用正则表达式来分隔域名和文件路径,然后只对路径进行urlencode。 这是正则表达式文档这是一个教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM