大家好,警告文本墙:)
我即将建立一个网站,抓取和收集属于两个标签的五个组合的instagram照片。第一个标签将是相同的,是网站/活动的名称,另一个标签仍然是五个主题之一。
这也需要在instagram用户名下进行排序,以便每个用户可以"收集"所有五个主题的图像。
这需要以"topplist"的形式呈现,按"图像数量DESC,组合喜欢DESC"排序。其中每个主题一张图片,换句话说,每个用户最多5张图片。
有点难以解释,我将尝试通过我需要构建的topplist示例来说明它:
TOPLIST:
1级。
USERNAME - score 27 (has collected all 5 topics and have most combined likes)
(img) #competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 10 likes
(img) #competition #topic-4 5 likes
(img) #competition #topic-5 4 likes
等级2。
USERNAME - score 25
(img) #competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 8 likes
(img) #competition #topic-4 5 likes
(img) #competition #topic-5 4 likes
等级3。
USERNAME - score 38 (has more likes than the leader but has only 4 topics covered..)
(img)#competition #topic-1 5 likes
(img) #competition #topic-2 3 likes
(img) #competition #topic-3 10 likes
(img) #competition #topic-4 20 likes
等级4。
USERNAME - score 17
(img) #competition #topic-1 1 likes
(img) #competition #topic-2 2 likes
(img) #competition #topic-3 3 likes
(img) #competition #topic-4 11 likes
等等....
我已经用API戳了一下,似乎"/tags/tag-name/media/recent"将是我最好的,如果不仅仅是这个问题的"入口点"?
所以我想做的是每5分钟运行一个脚本或一些东西,直到通过标记为"#competition"的最新图像,然后检查是否有5个次要标签在那里,如果是这样-保存如果还没有在DB。
我想我必须缓存获取所有图像匹配这些标签随着时间的推移?我还没有达到每个查询的instagram对象的限制…但是,如果我每次都尝试加载所有内容,我将达到我自己的服务器超时。
从我的角度来看,最大的麻烦是点赞,因为这些需要不断从instagram更新,以保持记分牌的活跃。只是用cron循环所有缓存的图像,然后做一个api请求来更新每个喜欢的计数似乎对我的服务器和instagram的api限制有点重。
也许我可以利用登录用户会话/令牌以某种聪明的方式做到这一点?
或者我应该说服团队的其他成员这是个坏主意,我们应该建立自己的"投票"机制,让竞争保持在本地,与instagram(如计数器)分开?请分享你如何存储和解决这个问题的想法:)
我认为标签端点,如您所建议的,是一种方法-这将返回您需要的所有数据-并存储在数据库中。这样你就可以做所有的计算(用户聚合,喜欢等),而不必担心太多的速率限制,认证等。
不幸的是,我不认为实时更新得到的触发(这将是适合你)所以你坚持要经历所有的图像的像数或创建你自己的机制像你提到的,不知道你的需求是什么,有多少用户/图片你期望但是如果你传播随着时间(即x数量每分钟)我看不出任何问题服务器明智……
当你提到缓存图像,我假设你的意思是存储url,而不是实际的二进制图像数据?