吉吉于

【Python】多线程网站死链检测工具

最新作品,一个python写的多线程爬虫+链接检测,其实可以分开用。

实测系统:
30个线程(10个爬虫,20个检测)
深度3
MacOS 64bit √
CentOS 64bit √
Fedora17 32bit √
Windows7 64 bit √

思路:通过线程管理器,触发爬虫线程按照广度优先爬取链接,另一方面触发检测线程用来检测爬取的链接。爬过的链接如果正常不用再检测,否则需要再检测。

第一天,大致设计,确定模块和编码。
第二天,处理多线程,将list换成set
第三天,第四天整合爬虫线程和检测线程,处理未释放锁引起的阻塞,添加辅助功能,继续优化。
日志记录,链接超时,还有链接去重问题。
第五天,继续改bug,处理网页编码问题,继续整理,优化代码。

定时功能没有添加,考虑到可以使用windows的任务计划,或者linux的crontab
还有很多可以继续优化的地方,比如,当检测链接成百万的时候,把链接放入数据库中,或者放入hadoop里

运行程序方法:python main.py

运行效果图:

NewImage

NewImage

项目地址:https://github.com/Flowerowl/pylinktester

转载请注明:于哲的博客 » 【Python】多线程网站死链检测工具