我已經做了大量的搜索和實驗,並且我還沒有找到解決方案。所以,如果我錯過了一些微不足道的東西,我會提前道歉。在Python中進行URL編碼/解碼(整個網址,不僅僅是路徑)
問題:
我有一個python的TurboGears應用程序正在下載的URL資源。它正在被一個URL下載給客戶。
一位客戶特別發送非轉義的網址。例如,'http://www.foo.com/file with space.txt'
當我嘗試下載它時,下載失敗,因爲服務器無法識別此URL。它需要將空格轉換爲有效的url。
我知道有方法(urllib.urlencode/urllib.quote等)將編碼字符串。但是他們認爲他們工作的字符串不是網址。如果您爲這些方法提供了一個URL,他們就會逃避url的方案,並使其更加無效。
所以,總結是:如何在python中使用完整的合法url?
注意:我嘗試使用urlparse解析出url組件以獲取路徑。然而,有時URL會有查詢參數,片段等等。所以,我不想編寫代碼將url拆分成它的部分,只需從路徑+ query + fragment中跳過所需的任何內容,然後重新構造url。
是否有任何幫助函數,直接採取該網址,並逃脫它?
此外,請注意,有時我會從客戶端獲得有效的轉義URL。所以,我想要處理它們,而不是雙重逃脫它們。
感謝您的回覆。正如我上面所說,我寧願不要這樣做。如果我想這樣做,我不妨使用urlparse解析出組件,進行更改並將它們組合起來。但那麼它很容易出錯。 – feroze
對不起,我完全錯過了那部分。 – Chris