# This is a script to print the crawl tree of spider run.
#
# 使用方法:
#
# $ python ctree.py myspider.log
# None
# http://www.example.com/start_page1
# http://www.example.com/second_page
# http://www.example.com/another_page
# None
# http://www.example.com/start_page2
# http://www.example.com/yet_another_page

#!/usr/bin/env python

import fileinput, re
from collections import defaultdict

def print_urls(allurls, referer, indent=0):
urls = allurls[referer]
for url in urls:
print ' '*indent + referer
if url in allurls:
print_urls(allurls, url, indent+2)

def main():
log_re = re.compile(r'<GET (.*?)> \(referer: (.*?)\)')
allurls = defaultdict(list)
for l in fileinput.input():
m = log_re.search(l)
if m:
url, ref = m.groups()
allurls[ref] += [url]
print_urls(allurls, 'None')

main()

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()