微博排行榜:获取微博用户和话题排行榜API接口

寻技术 PHP编程 2023年12月01日 137

随着社交媒体的快速发展,微博已成为了人们获取信息的重要途径。而在微博中,用户和话题的排行榜更是引起了人们的广泛关注。那么如何获取微博用户和话题排行榜呢?下面介绍一下基于微博排行榜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接口并解析结果的功能。通过调用这些函数,我们可以获取最新的微博用户和话题排行榜,为微博用户和内容创作者提供了有价值的参考。

关闭

用微信“扫一扫”