我正在使用一個應用程序返回用Flask編寫的url。我希望顯示給用戶的URL儘可能乾淨,所以我想從中刪除http://。我查看並找到了urlparse庫,但找不到如何執行此操作的任何示例。什麼是最好的方式去做,如果urlparse是矯枉過正有更簡單的方法嗎?只需使用常規字符串解析工具從URL中刪除「http://」子字符串就是不好的做法或導致問題?如何從Python中的url中刪除方案?
3
A
回答
5
我不認爲urlparse
爲此提供了一種方法或功能。這是我想做到這一點:
from urlparse import urlparse
url = 'HtTp://stackoverflow.com/questions/tagged/python?page=2'
def strip_scheme(url):
parsed = urlparse(url)
scheme = "%s://" % parsed.scheme
return parsed.geturl().replace(scheme, '', 1)
print strip_scheme(url)
輸出:
stackoverflow.com/questions/tagged/python?page=2
如果你會使用(只)簡單的字符串解析,你必須處理http[s]
,以及其他可能的方案你自己。此外,這處理該方案的怪異外殼。
0
如果你使用這些以編程方式而不是使用替換,我建議讓urlparse重新創建URL而不使用方案。
ParseResult對象是一個元組。所以你可以創建另一個刪除你不想要的字段。
# py2/3 compatibility
try:
from urllib.parse import urlparse, ParseResult
except ImportError:
from urlparse import urlparse, ParseResult
def strip_scheme(url):
parsed_result = urlparse(url)
return ParseResult('', *parsed_result[1:]).geturl()
您可以通過簡單地用空字符串替換輸入來刪除parsedresult的任何組件。
重要的是要注意這個答案和@Lukas Graf的答案之間存在功能差異。最有可能的功能差異是url的'//'組件在技術上並不是該方案,所以這個答案將會保留它,而它將保留在這裏。
>>> Lukas_strip_scheme('https://yoman/hi?whatup')
'yoman/hi?whatup'
>>> strip_scheme('https://yoman/hi?whatup')
'//yoman/hi?whatup'
相關問題
- 1. 從python中的URL中提取方案
- 2. 如何刪除方案中的括號?
- 3. 如何從python中給定的URL中刪除前綴?
- 4. 如何從Python中的字符串中刪除一些URL
- 5. 方案:如何刪除/刪除矢量中的元素
- 6. 從方案列表中刪除項目
- 7. 從TFS中刪除解決方案?
- 8. 如何從MediaWiki的URL中刪除index.php?
- 9. 如何從CodeIgniter的URL中刪除index.php?
- 10. 如何從CodeIgniter的URL中刪除'index.php'?
- 11. 如何從Python中的JSON中刪除額外的方括號?
- 12. 如何從Orchard URL中刪除OrchardLocal?
- 13. 如何從url中刪除index.php/html
- 14. 如何從url angular2中刪除端口?
- 15. 如何從vue-router URL中刪除hashtag(#)?
- 16. .htaccess,如何從url中刪除模式?
- 17. 如何使用htaccess從URL中刪除//
- 18. 如何從url中刪除id -jquery
- 19. 如何從url中刪除參數
- 20. 如何從url中刪除anynamefile.php?
- 21. 如何從URL中刪除JSESSION ID
- 22. Codeigniter 3.1.6 - 如何從url中刪除index.php
- 23. 如何從URL中刪除反斜槓?
- 24. CodeIgniter:如何從URL中刪除消息?
- 25. 如何從PHP中刪除index.php URL
- 26. 如何從URL中刪除index.php
- 27. 如何從url中刪除System.Web.Mvc.UrlParameter
- 28. AngularJS - 如何從URL中刪除索引
- 29. 如何刪除?佈局=從URL中
- 30. 如何從URL中刪除index.php?