例如,如果我有https://stackoverflow.com/questions/ask
我想将其剪切为stackoverflow.com/questions/ask
,或者如果我http://www.samsung.com/au/
,我希望将其剪切为{{1} }}。
我想为此制作模板标签但不确定要返回的内容:
samsung.com/au/
模板
def clean_url(url):
return ?
有什么想法吗?
答案 0 :(得分:2)
如果以something//
def clean(url):
return url.partition('//')[2].partition('/')[0]
答案 1 :(得分:1)
urllib.parse将为您完成大部分工作:
import urllib.parse
def clean_url(url):
parts = list(urllib.parse.urlsplit(url))
parts[0]=""
cleaned = urllib.parse.urlunsplit(parts)[2:]
return cleaned
请注意,这并没有切断“www。”,但你不应该这样做;这可能是域名的关键部分。如果您真的想要,请添加:
if cleaned.startswith("www."):
cleaned = cleaned[4:]
答案 2 :(得分:0)
对于用例,您描述了。您可以拆分双反斜杠,然后再使用它或从那里开始工作。
def clean_url(url):
clean = url.split('//')[1]
if clean[0:4] == 'www.':
return clean[4:]
return clean
但是,由于子域名(例如' www')可以用作网址的重要部分,因此您可能希望将其保留在其中。例如,www.pizza.com和pizza。 com可以链接到不同的页面。
要考虑的其他事项是urlparse库或正则表达式,但它们可能有点过分。