从Nginx日志中提取UserAgent、IP等信息

有时我们需要用到大量UserAgent信息,而Nginx日志文件中包含了海量真实的UserAgent,从Nginx文件中提取所有UserAgent信息就很有必要;

Python代码实现从Nginx日志文件中提取UserAgent信息:

import re

def extract_nginx_log(log):

    regex = re.compile(
        '''(?P<remote_addr>[\d\.]{7,})\
 - - (?:\[(?P<datetime>[^\[\]]+)\])\
 "(?P<request>[^"]+)" (?P<status>\d+)\
 (?P<size>\d+) "(?:[^"]+)" "(?P<user_agent>[^"]+)"'''
    )

    return regex.match(log).groupdict()

ua_lst = []

with open('access.log','r') as fp:
    for line in fp.readlines():
        ua_lst.append(extract_nginx_log(line)['user_agent'])

ua_lst = list(set(ua_lst)) # 简单去重

with open('user_agent.txt','w') as fp:
    for ua in ua_lst:
        fp.write(ua+'\n')

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/nginx-log-user-agent.html

分类: 计算机技术
推荐阅读:
如何查看Golang版本 不论是Windows,还是Linux环境,要查看Golang版本,只需要在命令行(CMD)或Shell中输入命令:
Python计算n阶行列式的值 本文将使用Python编写程序计算n阶行列式的值,不借助第三方库;
Golang中如何使用go test进行单元测试 单元测试的意义在这里就不多说了;本文将示范如何在Go语言环境下使用go test进行简单的单元测试。
Linux使两个文件的权限相同 在Linux系统下,你可以使用一条命令就能令两个文件的权限相同;
Python实现与智能机器人交互 本文将利用API与智能机器人进行人机交互,进行简单的聊天对话;代码由Python语言实现。
MATLAB使用误差扩散法进行图像半色调处理 误差扩散法(Error Diffusion)是一种常用的图像半色调处理方法,它的基本思想是通过将误差扩散到周围的像素点来逐渐逼近目标灰度值,从而实现图像半色调处理的效果。