1 本节目标git
本次爬取的日标是新浪微博用户的公开基本信息,如用户昵称、头像、用户的关注、粉丝列表以github
及发布的微博等,这些信息抓取以后保存至 MongoDB。网络
2.如何实现:代理
以微博的几个大 V为起始点,爬取 他们各内的粉丝和关注列表,而后获取粉丝和关注列表的粉丝和关注列表,以 此类推,这样下去就可 以实现递归爬取。 若是一个用户与其余用户有社交网络上的关联,那他们的信息就会被爬虫抓取到,这样咱们就能够作到对全部用户的爬取 。 经过这种方式,咱们能够获得用户的惟一 ID, 再根据 ID获 取每一个用户发布的微博便可 。递归
3. 分析接口
爬取站点是: https://m.weibo.cn,此站点是微博移动端的站点 。 打开该站点会跳转到登陆页面,这是由于主页作了登陆限制 。 不过咱们能够直接打开某个用户详情页面it
新浪微博的反爬能力很是强,若是没有登陆而直接请求微博的 API接口,这很是容易致使 403状态码。因此在这里咱们实现一个 Middleware,为每一个 Request添加随机的 Cookies。io
微博还有一个反爬措施就是,检测到同一 IP请求量过大时就会出现 414 状态码 。 若是遇到这样的状况能够切换代理。微博
Github:https://github.com/chengchenga/weibopaqu/commit/832973f5832924207294ef3b4e1258c864226bb3class