管理员终于动手了设置了关注仩限。2000人~终于可以写博客分享下关注的思路和代码了
这篇博客主要分享下,如何获取100万用户名.
分析下关注的api比如打开
点击关注按钮,查看网络请求
所以,如果你有所有用户的username那你就能通过这个api,提交完成关注但是。。
从哪里获取这些用户名呢?
csdn的个人页面URL各种各樣:
偶然发现每个人的主页,都有最多6个粉丝和6个关注
只要我们找个起点,然后从这个用户主页获取12个新的页面再递归去抓取~那么,你懂的!
这里用golang表达下:
//标记当前主页已被爬取过 //查看当前用户有没有被爬取过 //来不及爬取的用户先记录下来,可以是数据库也可以昰redis或者ES
2. 创建需要爬取的用户chan,将第一步返回的用户丢入这个chan中
另起goroute,不停冲chan中取出需要爬取的用户名
//没有爬取过的链接放入需要爬取嘚列表中 //需要判断当前channel是否满了,满了就先丢掉, 要不然会锁死chan
这里我采用的是存到ElasticSearch,利用ES存储和去重
目前存了105w只存了3个字段,用户名是否爬取过,是否关注过把用户名作为id.