如何匹配url列表与模式列表(正则表达式)

时间:2013-09-02 13:14:09

标签: python regex list url

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

1 个答案:

答案 0 :(得分:0)

使用urlparse module,解析您的网址,然后查看netloc属性。

将它与服务字典进行比较,如下所示:

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

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