1

我正在尝试一些机器学习技术。在这种情况下, PSO-KMean用于聚类。

我想我可以通过点击 Stack Exchange API 来测试它,以获取标签列表和每个标签的计数,然后将其转换为代表“标签空间”中每个站点位置的浮点数组

我正在使用Py-Stack-Exchange

from stackauth import StackAuth
import stackexchange 

site_data = {}
n_sites= 20
for site_auth in StackAuth().sites()[3:n_sites+3]: #Skip big 3
    site=site_auth.get_site()
    site_tags = {}
    for tag in site.all_tags():
        site_tags[(tag.name)]=tag.count
    site_data[site.domain] = site_tags

现在,在我搞砸了几次之后, 这一定已经超过了 10,000 个请求的限制,因为我得到了StackExchangeError: 502 [throttle_violation]: too many requests from this IP, more requests available in 81719 seconds

所以我猜它正在为网站上的每个标签发出请求以获取其计数。这对任何人都没有好处,对我来说速度较慢,并且在 Stack Exchange 基础架构上需要做更多的工作。我觉得必须有一种方法可以在每个站点一次点击中获取信息,但对 API 还不够熟悉,无法解决。

4

1 回答 1

0

您不能仅通过 1 个 API 调用来提取所有标签。仅在 Stack Overflow 上,截至此答案就有38,484 个标签。每页有 100 个标签,这意味着您必须进行 385 次单独调用。

解决此问题的 API 的替代方法可能是使用数据资源管理器。如果没有更多细节,我可以指出一个非常简单的查询,它会为 Stack Overflow 提取所有标签信息:

select * from tags

此信息每周更新一次,因此不是实时数据。

最后,您可以使用数据转储进行离线分析。这是 Stack Exchange 每季度(大约)提供的一个大型存档。幸运的是,最新的转储是从 2014 年 9 月开始的,所以它是最新的。

于 2014-10-01T19:46:03.717 回答