十年风雨路 · 一心铸精品

接一个官网 留一件精品 做一个项目 树一块样板

关于shell命令的问题

想从网站日志中提取出,用户的访问记录,不要搜索引擎的,命令怎么写呢。使用python即可完美提取这是一般Apache的Log内容:192.168.1.1--[20/Nov/2011:01:10:35+0100]"GET/feed.atomHTTP/1.0"200259653192.168.1.2--[20/Nov/2011:01:10:49+0100]"GET/feed.atomHTTP/1.1"3041

时间:2014年07月02日 点击量:

想从网站日志中提取出,用户的访问记录,不要搜索引擎的,命令怎么写呢。

 

使用python即可完美提取
这是一般Apache的 Log 内容:
192.168.1.1 - - [20/Nov/2011:01:10:35 +0100] "GET /feed.atom HTTP/1.0" 200 259653
192.168.1.2 - - [20/Nov/2011:01:10:49 +0100] "GET /feed.atom HTTP/1.1" 304 153
192.168.1.3 - - [20/Nov/2011:01:10:50 +0100] "GET /2008/1/23/no HTTP/1.0" 404 472
192.168.1.4 - - [20/Nov/2011:01:10:50 +0100] "GET /feed.atom?_qt=data HTTP/1.1"
先调出Log文件

with open('/var/log/apache2/access.log') as f:
for line in f:


然后提取用户访问记录

import re
from collections import defaultdict
from heapq import nlargest

with open('log.txt') as f:
count = defaultdict(int)
for line in f:
    match = re.search(r' "\w+ (.*?) HTTP/', line)
    if match is None:
        continue
    uri = match.group(1).split('?')[0]
    count[uri] = count[uri] + 1

most_common = nlargest(5, count.items(), key=lambda x: x[1])
print most_common

推荐案例

  • 成都森美啦园林绿化工程公

  • 四川尚恒科技有限公司

  • 成都九邦物流有限责任公司

  • 四川品睿餐饮管理有限公司

  • 美绘陶社陶艺手绘工作室-暖

  • 成都恩多施生物工程技术有

  • 汶川羌人土特产有限公司

  • 印刷设计公司网站No.3138

联系我们 / CONTACT US

  • 四川省成都市金牛区五福桥东路229号龙湖北城天街28栋903室
  • 服务热线:400-000-2367 028-86088588
  • 总机:028-62322623-0
  • 传真:028-62322623-823

扫码访问冠辰手机网站

版权所有 Copyright © 2002-2019 四川冠辰科技开发有限公司  www.scgckj.com 保留所有权利  蜀ICP备11012605号

地址:四川省成都市金牛区五福桥东路229号龙湖北城天街28栋903室

服务热线:400-000-2367 028-86088588 总机:028-62322623-0 传真:028-62322623-823