最新python爬虫抓取新浪微博千万级数据,scrapy思路+架构+源码

本文详细介绍了如何使用Scrapy框架爬取新浪微博的用户信息,包括爬取目标、准备工作、爬取思路和分析。通过递归爬取大V的关注和粉丝列表,获取用户ID并构造请求参数,解析JSON数据,存储到MongoDB,并对接Cookies池和代理池以应对反爬策略。同时,对非标准时间进行了数据清洗。
摘要由CSDN通过智能技术生成

一、前期工作... 3

1.1 爬取目标... 3

1.2 准备工作... 3

1.3 爬取思路... 3

1.4 爬取分析... 3

二、项目实战... 5

2.1 新建项目... 5

2.2 创建Item.. 6

2.3 提取数据... 8

2.4 数据清洗... 12

2.5数据存储... 13

2.6 Cookies池对接... 15

2.7代理池对接... 15

一、前期工作

1.1 爬取目标

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

1.2 准备工作

    代理池、 Cookies 池已经实现并可以正常运行,安装 Scrapy 、PyMongo 库

1.3 爬取思路

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

1.4 爬取分析

    爬取的站点是https://m.weibo.cn,此站点是微博移动端的站点,找到一个用户的主页面

数智实验室

在页面最上方可以看到她的关注和粉丝数量 。 我们点击关注,进入到她的关注列表

 

打开开发者工具,切换到XHR 过滤器,一直下拉关注列表,即可看到下方会出现很多人ajax请求,这些请求就是获取关注列表的 Ajax 请求.

  1. AJAX = 异步 JavaScript 和 XML。
  2. AJAX 是一种用于创建快速动态网页的技术。
  3. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

打开第一个 Ajax 请求, 将其展开之后 即可看到其关注的用户的基本信息。接下来我们只需要构造这个请求的参数。其中最主要的参数就是 cont ainerid 和 page 。 有了这两个参数,我们同样可以获取请求结果 。 我们可以将接口精简为 :

 

https://m.weibo.cn/api/container/getIndex?containe

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值