如何通过python调用新浪微博的API来爬取数据

如何通过python调用新浪微博的API来爬取数据,第1张

先上结论,通过公开的api如果想爬到某大v的所有数据,需要满足以下两个条件:

1、在你的爬虫开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000,twitter是3200。

2、爬虫程序必须不间断运行。

新浪微博的api基本完全照搬twitter,其中接口的参数特性与底层的NoSQL密不可分,建议先看点Nosql数据库的设计理念有助于更好的理解api设计。

一般来说,如果决定爬某个大v,第一步先试获取该用户的基本信息,中间会包含一条最新的status,记下其中的id号作为基准,命名为baseId。

接口中最重要的两个参数:

since_id:返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。

max_id:返回ID小于或等于max_id的微博,默认为0。

出于各种原因,获取statuses的接口,固定为按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假设该微博第一天上线,就一个用户,发了一百条,id是1到100。而你在该用户发了第50条的时候开始运行的爬虫,即baseId=50。

首先确定需要爬取的数据,达到爬取一页数据的要求;

然后通过审视元素来确定每一页是按照什么标准来分页的,达到爬取多页数据的要求;

比如第一篇显示为login1.html,第二篇显示为login2.html  第三篇显示为login3.html找到网站每一篇的规律,然后循环抓取数据。

第一页链接为:ye1.html,第二页链接为ye2.html。找到规律循环抓取。

以下是一个抓取博客内容的实例


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9933402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存