如何解析日志文件使用python,并输出html?

时间:2012-10-09 05:53:27

标签: python regex

这是一行日志文件:

41.42.50.xxx - - [09/Oct/2012:00:00:01 +0200] "GET http://www.xxxxxx.com/solutions-ar/solutions-1466.php HTTP/1.1" 200 10 "http://www.google.com.eg/url?dfasdfeaefdf" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4"

我想将ip地址,时间,网址,google网址和浏览器解析为单行, 我使用(r'^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')来匹配IP地址,我如何获得其他信息并输出html? 谢谢

2 个答案:

答案 0 :(得分:3)

使用像apachelog这样的库来解析Apache日志行。它比为行编写正则表达式更强大,更安全。

答案 1 :(得分:2)

  • IP地址:r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
  • 时间:r'\d{2}/[a-zA-Z]{3}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4}'
  • 时间(替代):r'(?<=\[).+?(?=\])',懒惰,假设日期始终在[]内,且只有日期会在[]
  • 网址:r'https?://.+?(?= HTTP)'
  • Google网址:r'(?<=")https?://.*?google\..*?(?=")'
  • 浏览器:r'(?<=")Mozilla.+?(?=")'

然而,正如 nneonneo 指出的那样,使用像apachelog这样的工具将更加强大和可靠。