知乎爬虫问题求指导!

最近在学爬虫,想爬知乎的用户,思路是从一个用户的被关注列表里面获取关注该用户的其它用户,采用广度优先的原则,将用户的url放到一个unvisited队列中,问题来了:比如轮子哥的关注有几十万,这个页面的用户全部加入到队列中的时间非常长,用单线程的时间全在等待加入队列上了,等这个页面的用户全部入队之后才出队爬取下一个页面。所以需要使用多线程,在入队时,其它线程继续爬取页面,但是Java多线程不太熟,请问下多线程的思路~~谢谢
全部评论
这不是生产者和消费者嘛😆
点赞 回复
分享
发布于 2017-04-17 20:19
为什么要从被关注列表里取数据呢,从关注列表里取不更好吗,每个人关注的用户是有限可控的。 可以用一个任务队列+unvisited队列,主线程负责从unvisited队列里取url将用户信息存入数据库,并将该用户的关注列表链接和页码数作为参数压入任务队列,辅线程不断从任务队列里取数据并把所关注用户的url压入unvisited队列。 关键做好同步和去重。
点赞 回复
分享
发布于 2017-04-17 20:34
滴滴
校招火热招聘中
官网直投
可以参考我做的:https://github.com/brianway/webporter
点赞 回复
分享
发布于 2017-04-17 21:00
6度原理告诉我们,你从一个知乎用户开始爬取就可以爬到所有用户信息。其实在微观上看就是多叉树,宏观上看是网状图。能处理好图的遍历就行
点赞 回复
分享
发布于 2017-04-18 07:35

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务