Scrapy 爬取新浪微博

时间:2021-11-20 09:12:24

1 本节目标

本次爬取的日标是新浪微博用户的公开基本信息,如用户昵称、头像、用户的关注、粉丝列表以

及发布的微博等,这些信息抓取之后保存至 MongoDB。

2.如何实现:

以微博的几个大 V为起始点,爬取 他们各内的粉丝和关注列表,然后获取粉丝和关注列表的粉丝和关注列表,以 此类推,这样下去就可 以实现递归爬取。 如果一个用户与其他用户有社交网络上的关联,那他们的信息就会被爬虫抓取到,这样我们就可以做到对所有用户的爬取 。 通过这种方式,我们可以得到用户的唯一 ID, 再根据 ID获 取每个用户发布的微博即可 。

3. 分析

爬取站点是: https://m.weibo.cn,此站点是微博移动端的站点 。 打开该站点会跳转到登录页面,这是因为主页做了登录限制 。 不过我们可以直接打开某个用户详情页面

新浪微博的反爬能力非常强,如果没有登录而直接请求微博的 API接口,这非常容易导致 403状态码。所以在这里我们实现一个 Middleware,为每个 Request添加随机的 Cookies。

微博还有一个反爬措施就是,检测到同一 IP请求量过大时就会出现 414 状态码 。 如果遇到这样的情况可以切换代理。

Github:https://github.com/chengchenga/weibopaqu/commit/832973f5832924207294ef3b4e1258c864226bb3