我有数百个URL,我想将其标准化为域格式->;domain.com、domain.ie、domain.de、domain.es等。但是,我很难涵盖“/”符号后面有文本的场景
我假设我需要添加另一个if条件,并找到URL字符串中第一个斜杠(/)的位置,然后用类似于u.rsplit('/', 1)[-1]
的东西拆分
迄今为止:
from w3lib.url import url_query_cleaner
from url_normalize import url_normalize
urls = ['foo.com','www.foo.com/','foo.com/us','foo.com/ca/example-test/']
def canonical_url(u):
u = url_normalize(u)
u = url_query_cleaner(u,parameterlist = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'],remove=True)
if u.startswith("http://"):
u = u[7:]
if u.startswith("https://"):
u = u[8:]
if u.startswith("www."):
u = u[4:]
if u.endswith("/"):
u = u[:-1]
return u
list(map(canonical_url,urls))
目前,该报告返回:
['foo.com', 'foo.com', 'foo.com/us', 'foo.com/ca/example-test']
预期成果:
['foo.com', 'foo.com', 'foo.com', 'foo.com']
有人能帮我吗?先谢谢你
如果您不想使用urllib,而urllib可以为您这样做,那么可以使用split
您可以在python中使用URLlib模块
输出将如您预期的那样
相关问题 更多 >
编程相关推荐