【问题标题】:python parse nginx logpython解析nginx日志
【发布时间】:2014-11-01 11:46:05
【问题描述】:

我建了一个视频网站,网站的结构很简单,一个索引页,一个列表页和一个观看页。现在我要统计每个观看页面的点击次数,观看页面的url结构是:/v/id.html

这是日志文件的一部分:

58.52.168.119 - - [25/Aug/2014:00:00:30 +0800] "GET /v/31635.html HTTP/1.1" 200 10451 "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0"
58.52.168.119 - - [25/Aug/2014:00:00:39 +0800] "GET /v/31635.html HTTP/1.1" 200 10451  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0"
125.85.189.50 - - [25/Aug/2014:00:00:42 +0800] "GET / HTTP/1.1" 200 44240  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"
42.49.223.150 - - [25/Aug/2014:00:00:50 +0800] "GET / HTTP/1.1" 200 44240  "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"
66.249.69.247 - - [25/Aug/2014:00:00:59 +0800] "GET /v/926.html HTTP/1.1" 200 10484 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

我可以从日志中获取点击时间,页面ID,但我不知道如何将这些信息导入数据库。我想定义一些方法来访问统计信息。

get_yesterday_click(id)  #get yesterday's click times
get_last7days_click(id)  #get last week's click times
get_last30days_click(id) #get last month's click times
get_total_click(id)      #get the total click times

任何人都可以帮助我如何创建表和实现这些方法?

【问题讨论】:

  • 这似乎是一个Code it for me 问题。
  • 不,不要为我编码。给我一个提示。我尝试了几种方法来存储这些数据,但不是那么好。我想看看你们如何存储统计信息。
  • 你知道谷歌分析吗?如果您可以使用它,您将免费获得大量分析。
  • 我想把这些数据存入数据库。所以必须自己写统计程序。

标签: python mysql nginx


【解决方案1】:

好的,问题以一种非常丑陋的方式解决了。

先用python解析日志文件得到字典。

然后将字典写入json格式的文件。

使用 php 读取 json 文件并写入数据库。 我的stat 表是这样的:

+-------------+-------------+------+-----+------ --+--------+ |领域 |类型 |空 |钥匙 |默认 |额外 | +-------------+-------------+------+-----+------ --+--------+ |编号 |整数(11) |否 |优先级 |空 | | |日期 |字符(8) |是 | | | | | day_click |整数(11) |是 | | 0 | | |周点击 | varchar(200) |是 | | | | |月_点击 | varchar(500) |是 | | | | |总点击 |整数(11) |是 | | 1000 | | +-------------+-------------+------+-----+------ --+--------+

一个测试记录是这样的:

| 31967 | 20140826 | 2 | 2,2,2,2,2,2 | 2,2,2,2,2,2 | 12 |

week_clickmonth_click 被实现为一个队列。

希望看到更好的方式来实现统计程序。

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2017-02-06
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多