我正在尝试一些机器学习技巧。 在这种情况下PSO-KMean用于群集。
我以为我可以通过点击Stack Exchange API来测试它 获取标签列表和每个标签的计数, 然后将其转换为表示“tag-space”
中每个站点位置的浮点数组我正在使用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
现在这个必须有gone over the 10,000 requests limit之后我几次搞砸了几次因为
我得到了StackExchangeError: 502 [throttle_violation]: too many requests from this IP, more requests available in 81719 seconds
所以我猜它正在请求网站上的每个标签来计算它。 这对任何人都没有好处, 它对我来说比较慢,而且对Stack Exchange Infrastructure的工作也更多。 我觉得必须有一种方法来获取每个站点1个点击的信息, 但是我不熟悉API来解决它。
答案 0 :(得分:0)
您只能使用1个API调用来提取所有标记。在Stack Overflow上,仅此答案就有38,484个标签。每页100个标签,这意味着您必须进行385次单独呼叫。
此问题的API的替代方法可能是使用数据资源管理器。如果没有更多细节,我可以指向一个非常simple query来提取Stack Overflow的所有标记信息:
select * from tags
此信息每周更新一次,因此不是实时数据。
最后,您可以使用data dump进行离线分析。这是Stack Exchange每季度(大约)提供的大型存档。幸运的是,最新的转储是从2014年9月开始的,因此它是最新的。