源代码地址:https://github.com/WiseDoge/Spider_Hub/tree/master/ZhiHu
一个分布式的网络爬虫,用于抓取知乎的用户详细信息,包括用户名、行业、位置、毕业院校、介绍、关注者、关注人等。
原理
主机
负责分发任务。从起始位置开始,将当前用户的所有关注者提取出来,并压入Redis任务队列
,然后随机的进入到其中一个关注者的主页,递归
上述操作。从机
负责抓取网页。连接至Redis队列
,从中取出一个用户的URL
,然后对URL
的内容进行抓取,并保存到MongoDB
中,然后循环
上述操作。
各模块功能
Master.py
:主机的入口,包含了主机的抓取和去重策略。Slave.py
:从机的入口。dbAPI.py
:储存模块,用于将数据存入数据库。login.py
:登录模块,用于登录到知乎。utils.py
:工具模块。Error.py
:异常类