cyrusin / url_test

Tool used to test m.sohu.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#!-*- coding:utf-8 -*-
说明:

    文件:
        1. fetch_and_test.py: 主程序,运行直接用"python ./fetch_and_test.py"

        2. settings.py: 待检测的host名,以list存放,可添加其他域名

        3. url.log: 链接状态日志,只记录时间、异常链接及status code, 访问较慢标记为timeout

    fetch_and_test.py:
        
        1.多线程、多队列的方式
            队列:url_queue: 待访问url队列
                  chunk_queue: 待分析页面队列

            线程:GrabThread 负责从待访问url队列中每次取出一个url, 测试响应状态,
                  若可访问,抓取页面,并将页面放置到待分析页面队列
                  访问异常,按要求记入日志

                  ChunkThread 负责从待分析页面队列中每次取出一个页面,解析其页面
                  的所有url, 放入待访问url队列

            页面解析:使用了BeautifulSoup库

        2.设置超时:防止出现访问时间过长的url阻塞线程
        
        3.url去重:使用了一个字典,将所有访问过的url加入,用其他可以O(1)时间内查找的结构也可

        4.url过滤:指向外网站的url不抓取其页面,防止脚本陷入到外网


About

Tool used to test m.sohu.com


Languages

Language:Python 100.0%