簡體   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