最近为了做事件分析写了一些微博的爬虫,两个大V总共爬了超70W的微博数据。
官方提供的api有爬取数量上限2000,想爬取的数据大了就不够用了...
果断撸起袖子自己动手!先简单说一下我的思路:
一、目标选择
在确定爬取对象时,在移动端展示的数据可以满足的情况下,优先选择移动端。难度要低很多。
二、分析目标网站
在开始构造爬虫前,需要先了解目标网站的结构和数据传输方式。
拿本次爬取对象举例:
在开发者模式下可以找到构造页面内容的包,Request URL是页面数据api接口,滚动加载几页后即可发现规律。
在此 page = 2控制了滚动的页码数,可通过构造页面链接爬取微博大V所有的微博数据。
Content-Type:application/json; charset=utf-8 标明了页面数据是通过json返回的,编码类型为utf-8。
然后分析json包,里面包含了很多数据集,找你需要的就好:
其中的id 为构造某一条微博评论链接的关键数据,如果想爬具体某条微博下的评论数据需要用id的值来构造评论页链接。正常可感知的数据:微博内容、评论数、点赞数、分享数、发布时间和来源都是可以直接获取的。
页面分析的差不多了,可以开始构造微博爬虫了。
三、模拟浏览器请求
正常爬取微博时需要先登录,这里可以使用post请求将账号和密码传入的方式实现。也可以直接在浏览器内登录后使用登录后的api链接构造请求头,然后使用get方式请求即可。
本次按照第二种方式实现。在模拟请求头时
如果觉得《python爬取微博内容_Python 爬虫如何机器登录新浪微博并抓取内容?》对你有帮助,请点赞、收藏,并留下你的观点哦!