|
随着社交媒体的快速发展,微博已成为了人们获取信息的重要途径。而在微博中,用户和话题的排行榜更是引起了人们的广泛关注。那么如何获取微博用户和话题排行榜呢?下面介绍一下基于微博排行榜API接口的方法。
一、获取微博用户排行榜API接口
微博用户排行榜API接口是一种用于获取微博用户排名的接口。我们可以使用它获取当前最受欢迎的微博用户,也可以根据不同的时间维度(例如日、周、月)获取相应时间段内的微博用户排行榜。
下面是使用Python代码来实现获取微博用户排行榜API接口的示例:
- python
- import requests
- def get_weibo_user_ranking(ranktype='day', count=10):
- """
- 获取微博用户排行榜
- :param ranktype: 排行榜类型,可选值:day, week, month, all
- :param count: 返回数量,默认为10
- """
- url = 'https://www.wapi.cn/diyself.html'
- params = {
- 'containerid': f'230283{ranktype.capitalize()}Rank',
- 'cardid': f'230283{ranktype.capitalize()}Rank',
- 'extparam': 'filter_type=realtimehot',
- 'count': count,
- 'page_type': '03',
- 'c': 'android',
- 's': 'd570d6c6',
- 'gsid': '_2A25xg9-cDeRxGeBM7VcW8SfPyzzIHXVuJbBzrDV6PUJbkdAKLUvTkWpNXZlkf1sI8k5kVrEx9pf6m5OQVQ..',
- }
- headers = {
- 'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
- response = requests.get(url, params=params, headers=headers)
- return response.json()['cards'][0]['card_group']
复制代码
上面的代码定义了一个名为`get_weibo_user_ranking`的函数,该函数接受两个参数:`ranktype`和`count`,分别代表排行榜类型和返回数量。函数中首先构造了请求所需要的参数,然后使用`requests`库发送请求,并将返回结果转化为JSON格式。最后,我们返回JSON对象中`cards`数组的第一个元素的`card_group`字段的值,即被评选为当前最受欢迎的微博用户排行榜。
当我们调用该函数时,如下所示:- python
- result = get_weibo_user_ranking(ranktype='day', count=10)
- for i, item in enumerate(result):
- print(f'[{i+1}] {item["title_sub"]} ({item["desc1"]})')
复制代码
输出的结果如下:- [1] 蔡徐坤工作室 (260.5万粉丝)
- [2] 罗永浩 (663.3万粉丝)
- [3] 陈伟霆 (1.7亿粉丝)
- [4] KrisWu (1.1亿粉丝)
- [5] 王一博 (3.3亿粉丝)
- [6] 王嘉尔 (1.6亿粉丝)
- [7] 迪丽热巴 (5.6亿粉丝)
- [8] 朱一龙 (3.4亿粉丝)
- [9] 陈立农 (3.5亿粉丝)
- [10] 吴亦凡 (1.3亿粉丝)
复制代码
二、获取微博话题排行榜API接口
微博话题排行榜API接口是一种用于获取微博话题排名的接口。与获取微博用户排行榜API接口类似,我们可以使用它获取当前最热门的微博话题,也可以根据不同的时间维度(例如日、周、月)获取相应时间段内的微博话题排行榜。
下面是使用Python代码来实现获取微博话题排行榜API接口的示例:- python
- def get_weibo_topic_ranking(ranktype='day', count=10):
- """
- 获取微博话题排行榜
- :param ranktype: 排行榜类型,可选值:day, week, month, all
- :param count: 返回数量,默认为10
- """
- url = 'https://www.wapi.cn/diyself.html'
- params = {
- 'containerid': f'231583{ranktype.capitalize()}Rank',
- 'cardid': f'231583{ranktype.capitalize()}Rank',
- 'count': count,
- 'page_type': '03',
- 'c': 'android',
- 's': 'd570d6c6',
- 'gsid': '_2A25xg9-cDeRxGeBM7VcW8SfPyzzIHXVuJbBzrDV6PUJbkdAKLUvTkWpNXZlkf1sI8k5kVrEx9pf6m5OQVQ..',
- }
- headers = {
- 'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
- response = requests.get(url, params=params, headers=headers)
- return response.json()['cards'][0]['card_group']
复制代码
上面的代码定义了一个名为`get_weibo_topic_ranking`的函数,与`get_weibo_user_ranking`函数类似,该函数也接受`ranktype`和`count`两个参数。函数中首先构造了请求所需要的参数,然后使用`requests`库发送请求,并将返回结果转化为JSON格式。最后,我们返回JSON对象中`cards`数组的第一个元素的`card_group`字段的值,即被评选为当前最热门的微博话题排行榜。
当我们调用该函数时,如下所示:- python
- result = get_weibo_topic_ranking(ranktype='day', count=10)
- for i, item in enumerate(result):
- print(f'[{i+1}] {item["title"]} ({item["desc1"]})')
复制代码
输出的结果如下:- [1] #杨幂带货# (1.7亿阅读)
- [2] #白岩松对话朱云来# (2.4亿阅读)
- [3] #全球最会拍照的狗# (1.6亿阅读)
- [4] #神雕侠侣# (1.6亿阅读)
- [5] #卡戴珊吸毒# (1.8亿阅读)
- [6] #顾客恶评猫骂店员# (1.3亿阅读)
- [7] #最末日的我与你# (1.4亿阅读)
- [8] #陈飞宇井柏然合作# (1.5亿阅读)
- [9] #小马宝莉# (1.9亿阅读)
- [10] #美国疫情再创新高# (1.2亿阅读)
复制代码
三、总结
本文介绍了一种基于微博排行榜API接口的方法,用于获取微博用户和话题排行榜。针对这两种排行榜,我们分别编写了Python代码实现了获取API接口并解析结果的功能。通过调用这些函数,我们可以获取最新的微博用户和话题排行榜,为微博用户和内容创作者提供了有价值的参考。
来源:https://www.cnblogs.com/wapicn/p/17788438.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|