本人大三学生,最近突然对爬虫感兴趣,于是搜了搜Github 找到了一个比较简单的爬虫框架Crawler4j
当然我是学JAVA的,读了好久源码,想尝试着修改一下,写一个比较简单的自己的框架。当然,里面有很多抄袭的源码,更重要的抄袭了大神的思想,,但毕竟是学习,以提高自己能力为主,自己动手改一改,至少是把源码读懂了七七八八吧。。而且自我感觉多读源码对自己的编程能力还是有提高的。。
进入正题,,因为本人实在是很菜,不喜勿喷。我先谈谈我做的主要改动吧:
1、把内嵌的Berkeley DB改为了 MongoDB,因为刚好对很火的Nosql数据库很感兴趣,于是就算做个例子把数据库的JAVA驱动学习一遍吧。。
2、浏览过的URL使用布隆过滤器去重。
3、解析页面时用了Jsoup,,也算是为了学习吧。
4、Crawler4j中有些功能没有去深究,就直接去掉了。。比如恢复爬取等等。。
先放一张图。。这算是我做的一个小栗子吧
当然这个框架也是支持多线程的,,现在还有很多不完善的地方,,比如数据库的链接管理,,还有二进制文件(图片音频那些)的抓取暂时没有实现,,还有自己写的代码渣的让人难以直视。。。。
不过希望有兴趣的小伙伴可以一同完善一下,,共同进步吧~~也求各路大神指点指点
有兴趣的可以联系我 QQ:396995269
代码地址:
https://github.com/liuyawen44/Mycrawler
还是那句话,,不喜勿喷。。开源万岁!!!!