{ "metadata": { "name": "Untitled0" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import re\n", "import pandas as pd\n", "from collections import Counter\n", "\n", "data = open('www-access.log').readlines()\n", "colnames = ('host','referrer','user','datetime',\n", " 'method','request','proto','status','bytes')\n", "logpats = r'(\\S+) (\\S+) (\\S+) \\[(.*?)\\] '\\\n", " r'\"(\\S+) (\\S+) (\\S+)\" (\\S+) (\\S+)'\n", "logpat = re.compile(logpats)\n", "\n", "#########################################\n", "# generator processing\n", "#########################################\n", "\n", "groups = (logpat.match(line) for line in data)\n", "tuples = (g.groups() for g in groups if g)\n", "log = (dict(zip(colnames,t)) for t in tuples)\n", "\n", "# generator function for ripping out all the host\n", "def host(iterable):\n", " for item in iterable:\n", " yield item['host']\n", "\n", "#########################################\n", "# generator processing into a function\n", "#########################################\n", "\n", "hosts = host(log)\n", "result = Counter(hosts).most_common()\n", "ip =[]\n", "count = []\n", "for key, value in result:\n", " ip.append(key)\n", " count.append(value)\n", " \n", "ts= pd.Series(count, ip)\n", "ts.plot(kind='bar')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 40, "text": [ "" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 40 } ], "metadata": {} } ] }