0

こんにちは、テキストの壁の警告:)

2 つのハッシュタグの 5 つの組み合わせに属する instagram の写真をスクレイピングして収集するサイトを構築しようとしています。最初のハッシュタグはサイト/キャンペーンの名前と同じで、もう 1 つのハッシュタグは 5 つのトピックのいずれかになります。

各ユーザーが 5 つのトピックすべての画像を「収集」できるように、これも instagram ユーザー名でソートする必要があります。

これは、「画像の数 DESC、組み合わせた DESC など」でソートされた「トップリスト」として提示する必要があります。各トピックの画像は 1 枚、つまり、ユーザーごとに最大 5 枚の画像です。

説明するのが難しいので、作成する必要があるトップリストのこの例で説明します。

トップリスト:

ランク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の制限にまだ達していません...しかし、何もしなければ、毎回すべてをロードしようとすると、自分のサーバーのタイムアウトに達します。

私の観点から見たお尻の大きな痛みはいいねです。これらはスコアボードを維持するためにインスタグラムから常に更新する必要があるためです。キャッシュされたすべての画像をcronでループしてから、APIリクエストを実行してそれぞれのようなカウントを更新するだけでは、サーバーとinstagramのAPI制限の両方で少し重いようです.

ログインしているユーザーのセッション/トークンを利用して、これをスマートな方法で行うことができるでしょうか?

それとも、チームの残りのメンバーに、これは悪い考えであり、「投票」メカニズムを構築または所有し、カウンターのようなインスタグラムから切り離して、競争をローカルに保つ必要があることを説得する必要がありますか?

これをどのように保存して解決するかについてのアイデアを共有してください:)

4

1 に答える 1

0

あなたが提案したように、タグエンドポイントが道だと思います-これは必要なすべてのデータを返し、データベースに保存します. そうすれば、すべての計算 (ユーザーの集計、いいね! など) を実行でき、レート制限や認証などについてあまり心配する必要がなくなります。

残念ながら、リアルタイム更新が like でトリガーされるとは思わない (これはあなたにとって理想的です) ので、すべての画像を調べて like カウントを取得するか、あなたが言及したように独自の like メカニズムを作成する必要があります。 -あなたの要件が何であるか、そしてあなたが期待しているユーザー/写真の数がわからないが、それを時間の経過とともに広げた場合(つまり、x分ごとにx量を取得する場合)、サーバーに関して問題は見られません...

画像のキャッシュについて言及するとき、実際のバイナリ画像データではなく、URL を保存することを意味していると思いますか?

于 2013-04-17T22:39:27.763 に答える