Scrapy 爬取新浪微博

本文介绍了一种递归爬取新浪微博用户信息的方法,包括用户昵称、头像、关注和粉丝列表,以及发布的微博内容。通过从大V用户开始,逐步扩展至其粉丝和关注者,实现了大规模社交网络数据的抓取。为了应对微博的反爬措施,如403和414状态码,文章详细说明了使用随机Cookies和代理IP的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://www.cnblogs.com/chengchengaqin/p/9814940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值