在 Scratch 上获取关注者数量 (API)

Get follower count on Scratch (API)

我正在寻找使用 Scratch API 的 Scratch 用户的关注者数量。我已经知道如何使用 https://api.scratch.mit.edu/users/[USER]/messages/count/.

获取他们的消息数

正如 _nix 在 this forum thread 上提到的,目前没有 API 可以实现这一点。但是,he/she 正确地指出可以从用户的个人资料页面获取该号码。

您可以编写一个脚本(例如在 JavaScript 中)来解析 HTML 并在页面顶部的括号中获取关注者数量。

希望对您有所帮助!

Python中有解决方法:

import requests
import re
def followers(self,user):
   followers = int(re.search(r'Followers \(([0-9]+)\)', requests.get(f'https://scratch.mit.edu/users/{user}/followers').text, re.I).group(1))
   return f'{followers} on [scratch](https://scratch.mit.edu/users/{user}/followers)'

功劳归功于 12944qwerty, in his code(适用于删除一些特定于实现的内容)。

此答案针对 Scratch REST API,记录在案 here

您可以通过请求获得用户的关注者:https://api.scratch.mit.edu/users/some_username/following 其中 some_username 将替换为实际用户名。

这将 return 0 到 20 个结果(20 是 REST API 编辑的对象的默认限制 return)。如果少于 20 个结果,那么您就完成了。追随者的数量只是对象的数量 returned.

如果 returned 有 20 个对象,我们不能确定我们已经请求了所有用户的朋友,因为可能还会有更多对象。因此,我们通过提供 ?offset= 参数跳过该用户的前 20 个关注者:https://api.scratch.mit.edu/users/some_username/following?offset=20

这将检索第二个 'page' 朋友。现在我们简单地循环执行上述过程,每次将偏移量递增 20,直到少于 20 个结果被 returned 或没有结果被 returned。该用户的好友数量是对象的累计数 returned.

使用 ScratchDB

var user = "username here";
fetch(`https://scratchdb.lefty.one/v3/user/info/${user}`).then(res => res.json()).then(data => {
    console.log(`${user} has ` + data["followers"].toString() + " followers");
}

(编辑:顺便说一句,这是 javascript,我更喜欢 Python,但是 Python 没有 cloud.set 函数,我就是这样做的)

https://api.scratch.mit.edu/users/griffpatch/followers

这会给出追随者姓名、scratch 状态(scratch 团队与否)、pfp、他们个人资料中的所有内容

使用 ScratchDB(我使用的是 httpx,但你可以 GET 使用任何东西):

import httpx
import json

user = "griffpatch"

response = httpx.get(f"https://scratchdb.lefty.one/v3/user/info/{ user }")
userData = json.loads(response.text)

followers = userData["statistics"]["followers"]