打印scrapy蜘蛛的抓取树结构

2022-04-25 00:00:00 结构 抓取 蜘蛛

通过这段代码可以一目了然的知道scrapy的抓取页面结构,调用也非常简单

# 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()

相关文章