是这样的,毕业设计快要开始了。
最近在选题,由于很早就对爬虫很感兴趣。
所以毕业设计就想做一个关于网络爬虫的小项目。但是觉得单一的单机爬虫可能比较小,不太符合毕业设计的要求。所以打算做一个分布式的网络爬虫。如果有时间会做对数据进行分析的模块。
语言的话暂定java,之前接触过Python但是觉得现在再学然后用来做毕设不太现实。
所以想在这问一下各位大神
分布式爬虫需要学习什么?
利用什么框架来完成这个命题?
实现的难度如何?
推荐的书籍?
先谢谢了!
先实现一个简单的爬虫,单机跑,然后再实现一个分布式队列。分布式可以查查rpc相关的。
可以考虑的方向
akka (一个分布式计算框架)
storm (也是一个分布式计算框架)
nutch (一个爬虫+搜索引擎,分布式可以基于hadoop来做)
或者任意消息队列系统,例如RabbitMQ,基于消息队列你可以不基于框架自己来实现一个分布式系统
实现的难度这个很难说,如果你单机的爬虫已经毫无压力,那么你肯定会想到这个东西的难点并非在爬虫这件事情本身身上,而在分布式的任务分发,数据处理方面的问题(你可以想想为什么要做一个分布式的爬虫),但如果你已经掌握了一个分布式框架,那么会发现其实分布式的那块的东西其实已经由框架层面帮你解决掉了,你只需要专注于爬虫就可以了。
这里有个现有的例子,你可以参考一下:
如何爬取大众点评网上的商家信息(有栗子、附代码)
https://www.douban.com/group/...
首先你得有一个爬虫,然后你需要把它们部署到集群中,这会儿你发现需要在它们之间分享URL信息。解决掉这些 你的分布式爬虫就出生了