我有一个url列表,我想从给定的url模式和名称列表中找到服务名称,目前我选择一个url并将其与所有模式匹配,因为这两个列表都很大,最好的是什么url(s)模式匹配和查找服务名称的方式? 目前的实施情况如下。
网址
http://www.facebook.com
http://0.facebook.com
http://m.facebook.com
http://www.linkedin.com
模式服务名称
facebook.com Facebook
linkedin.com LinkedIn
def get_service_name(url, services_details):
url = url.rsplit('?')
# urls pattern matching
for service in services_details:
if len(url) > 1:
if service[0] in url[0]:
return service[1]
else:
if service[0] in url:
return service[1]
return "Unknown Service"
答案 0 :(得分:0)
使用urlparse
module,解析您的网址,然后查看netloc属性。
将它与服务字典进行比较,如下所示:
{
'facebook.com': 'Facebook',
'linkedin.com': 'LinkedIn',
}
您可能需要额外的规范化步骤来删除或添加前导www
。