0

你好,警告文字墙:)

我即将建立一个网站来抓取和收集属于两个标签的五个组合的 instagram 照片。第一个标签将是相同的,并且是网站/活动的名称,另一个标签直到成为五个主题之一。

这也需要在 instagram 用户名下进行排序,以便每个用户都可以“收集”所有五个主题的图像。

然后需要将其呈现为按“图像数量 DESC,组合喜欢 DESC”排序的“顶级列表”。每个主题一张图片,换句话说,每个用户最多五张图片。

有点难以解释,我将尝试通过我需要构建的顶级列表的示例来说明它:

排行榜:

排名 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 个辅助标签中的任何一个在那里,如果是 - 如果没有,则保存已经在数据库中。

我想我必须缓存以获取所有与这些标签匹配的图像?我还没有达到每个查询的 Instagrams 对象限制......但如果没有别的,如果我每次都尝试加载,我将达到我自己的服务器超时。

从我的角度来看,最大的痛苦是喜欢,因为这些需要不断地从 instagram 更新以保持记分牌的活力。只是使用 cron 循环遍历所有缓存的图像,然后执行 api 请求来更新每个点赞数,这对于我的服务器和 instagrams api 限制来说似乎都有些繁重。

也许我可以利用登录的用户会话/令牌以某种聪明的方式做到这一点?

还是我应该让团队的其他成员相信这是一个坏主意,我们应该建立或拥有“投票”机制,让比赛保持本地化,与柜台等 Instagram 分开?

请分享您对如何存储和解决此问题的想法:)

4

1 回答 1

0

我认为标签端点,就像你建议的那样,是要走的路——这将返回你需要的所有数据——并存储在数据库中。这样您就可以进行所有计算(用户聚合、喜欢等),而不必过多担心速率限制、身份验证等。

不幸的是,我认为实时更新获取不会触发点赞(这对你来说是理想的),所以你不得不通过所有图像来获得点赞数,或者像你提到的那样创建你自己的点赞机制- 不确定您的要求是什么以及您期望有多少用户/图片,但如果您随着时间的推移将其分散(即每 x 分钟获得 x 数量),我认为服务器没有任何问题......

当您提到图像缓存时,我假设您的意思是存储 url 而不是实际的二进制图像数据?

于 2013-04-17T22:39:27.763 回答