我正在尝试用 Python 编写一个程序来分析 .txt 文件中呈现给我的日志

问题描述 投票:0回答:1

日志包含我需要提取的数据,包括:IP 地址、日期、时间和 URL。

例如:

66.249.64.76 - - [15/8/2019:04:03:25 +1000]“GET /UADI/sleep/image/watch_l1.gif HTTP/1.1”200 4885“-”“Googlebot-Image/1.0”“ -”

&

66.249.64.76 - - [15/8/2019:04:03:26 +1000]“GET /UADI/sleep/image/DS_Network_EOG.png HTTP/1.1”200 33245“-”“Googlebot-Image/1.0”“ -”

我需要编写一个Python脚本,从日志文件中读取输入并显示有多少主机访问了带有关键字“UADI”的网站

任何帮助将不胜感激!

我希望自己检查数据并创建一个包含所需 4 个元素的列表,或者是否有更好的方法让 python 分析数据本身?

我希望程序请求输入并提供单个输出,然后再次重新请求新的输入

python logging analysis
1个回答
0
投票

假设您已经拥有 .txt 文件形式的日志,并且知道其位置,则可以使用简单的正则表达式来提取以 ip 开头的“UADI”出现次数:

*编辑:这将计算具有 UADI 的行数。从你的问题中我不清楚你是否需要知道有多少个不同的主机,但你也可以使用正则表达式。

import re

filename = 'temp.txt'

with open(filename, 'r') as f:
    lines = f.readlines()

pattern = re.compile(r'\d+\.\d+\.\d+\.\d+.*UADI.*')

count = sum(1 for line in lines if pattern.match(line))

print(f'match count: {count}')```

© www.soinside.com 2019 - 2024. All rights reserved.