利用正则匹配统计访问日志IP、浏览器


import re

class CountPatt:

    def __init__(self,fname):

        self.fname = fname

    def count_patt(self, patt):

        cpatt = re.compile(patt)

        patt_dict = {}

        with open(self.fname) as fobj:

            for line in fobj:

                m = cpatt.search(line)

                if m:

                    key = m.group()

                    patt_dict[key] = patt_dict.get(key, 0) + 1

                    continue

            patt_order = list(patt_dict.items())    按降序 排出访问量最多的前三

            patt_order.sort(key= lambda seq:seq[-1],reverse=True)

            print(patt_order[:3])

if __name__ == '__main__':

    fname = 'access_log'

    ip = '^(\d+\.){3}\d+'

    br = 'Chrome|Firefox|MSIE'

    cp = CountPatt(fname)

    result1 = cp.count_patt( ip)

    result2 = cp.count_patt( br)

    #print(result1)

    #print(result2)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容