2009-09-19 11 views
5

私は小さなStack Overflowアプリケーションを構築していますが、ユーザーのUserIDを知る必要があるユーザーについてはStack Overflowから情報を収集します。ユーザーにの表示名/ユーザー名を入力し、アプリケーションでユーザーIDを検索できるようにします。しかし、のユーザー名は一意ではないですが、C#でというユーザー名を持つユーザーのすべてのユーザーIDがであることがわかりますか?これのためのサンプルコードを私にくれますか?これはおそらくユーザーページをスクラップすることで何とかできますが、私はこのようなことをどのように達成するかはわかりません。C#での表示名を持つスタックオーバーフローユーザーのユーザーIDの検索?

ところで、私はこれを達成するためにデータダンプを使用したくありません。私はちょうど何らかの形でこの情報をユーザページ、または類似のものを通して見つけたいと思うでしょう。

ちなみに、私はsimilar question on Meta Stack Overflowを投稿し、スタックオーバーフローはそれが属するところでここに投稿するように指示されました!

+2

私は、データ・ダンプを使用することをお勧めしようとしていましたが、あなたはあなたには、いくつかの不特定の理由のためにそれを使用したくないと言いました。 Stack Overflowですべてのユーザーをスクリーンスクレーピングすると、あなたは*禁止されます。 –

+0

@Gregはできますか?うーん...私はすべてのユーザーをスクラップしたくないので、私がしたいのは、どのユーザーが存在するかを示すユーザーページ(個々のプロファイルページではなくメインのユーザーページ)を通過することだけです。これは不可能と思われる。 –

答えて

7

この回答のprevious versionはもう機能しません。それはもう一度働くように変更することができましたが、最近は–は必要ありません。official APIがあります。 innameのパラメータはthe /users methodになります。

例:http://api.stackexchange.com/2.2/users?order=desc&sort=reputation&inname=steve&site=stackoverflow

+0

ありがとう!これは本当に助けになった!ところで、これはどうやって見つけましたか? –

+0

うわー、ありがとう! –

+0

これは動作しません。その間にこれは変わったのでしょうか? –

2

この質問に答えるには、すべてのユーザー(https://stackoverflow.com/users/()をクロールする必要があります。

+0

私はユーザーIDが連続しているかどうかを調べようとしていましたが、この答えはそれらが順次であることを意味します。 – the0ther

3

私はそれを言うことは嫌ですが、あなたはユーザーIDを求めたいと思うかもしれません。

潜在的な重複を持つユーザーが多いというわけではありません。その場合、ルックアップをキャッシュするだけでよいからです。問題は、どのユーザーもいつでも表示名を変更できるため、キャッシュを本当に信頼できないことです。

最新のコミュニティwikiダンプからWebサービスを構築し、最新の状態に保ち、ユーザー名を変更すると次の月を待つ必要があることをユーザーに知らせるだけです新しい名前が動作するためのデータリリース。

+0

ありがとうございます!私はちょうどあなたがあなたのユーザーIDを変更するのですか?それはあなたのアカウントに新しいOpenIDを関連付けることに関連していますか?私は今日それをしたので、私は私のIDが変更されたかどうかを見ていきます。 –

+0

あなたのSOアカウントがデータベースに作成されたときにランダムに生成されると思います。 1人のユーザーが複数のオープンIDを持つことができるため、openidを変更しても変更されません。あなたは別のIDを取得するために新しいユーザーアカウントを作成する必要があります – TJB

+0

@ TJBそれは私が思うのですが、ランダムではないことを除いて、IDは最初に登録する人の点で昇順です。ジェフはID#1を持っています。他のチームメンバーは1桁のIDを持っています。それは時間の順序です!登録する鉱石の人々は、あなたに割り当てられているIDが高くなります! –

関連する問題