如何通过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。

三种方案:

1.直接用Python的requests库直接爬取,不过这个需要手动做的事情就比较多了,基本上就看你的Python功力了

2.使用scrapy爬虫框架,这个框架如果不熟悉的话只能自己先去了解下这个框架怎么用

3.使用自动测试框架selemium模拟登录 *** 作,及图片爬取,这个对于大多数会点Python编码的人来说是最好的选择了,他比较直观的能看到怎么去获取数据

每种方案的前提都是你必须有一定基础的编码能力才行,不是随便一个人就能用的


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存