0

我有一个 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"
4

1 回答 1

0

使用urlparse模块,解析您的 URL,然后查看 netloc 属性。

将其与如下所示的服务字典进行比较:

{
    'facebook.com': 'Facebook',
    'linkedin.com': 'LinkedIn', 
}

您可能需要额外的规范化步骤来删除或添加前导www.

于 2013-09-02T13:23:07.743 回答