大家好,又见面了,我是你们的朋友全栈君。
最新作品,一个python写的多线程爬虫 链接检测,其实可以分开用。
实测系统:
30个线程(10个爬虫,20个检测)
深度3
MacOS 64bit √
CentOS 64bit √
Fedora17 32bit √
Windows7 64 bit √
思路:通过线程管理器,触发爬虫线程按照广度优先爬取链接,另一方面触发检测线程用来检测爬取的链接。爬过的链接如果正常不用再检测,否则需要再检测。
第一天,大致设计,确定模块和编码。
第二天,处理多线程,将list换成set
第三天,第四天整合爬虫线程和检测线程,处理未释放锁引起的阻塞,添加辅助功能,继续优化。
日志记录,链接超时,还有链接去重问题。
第五天,继续改bug,处理网页编码问题,继续整理,优化代码。
定时功能没有添加,考虑到可以使用windows的任务计划,或者linux的crontab
还有很多可以继续优化的地方,比如,当检测链接成百万的时候,把链接放入数据库中,或者放入hadoop里
运行程序方法:python main.py
运行效果图:
项目地址:https://github.com/Flowerowl/pylinktester
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163370.html原文链接:https://javaforall.cn