Twitter ユーザーの誕生日を取得

Twitter では誕生日を設定できます。誕生日を設定すると、広告のターゲティングに活用されるとのこと。誕生日は「年」と「月日」ごとに公開範囲を設定でき、誕生日当日のユーザーのプロフィールページには、風船が飛ぶ機能があります。

誕生日の取得

さて、誕生日は Twitter API で取得できないため、スクレイピングするしかありません。誕生日を全体に公開しているユーザーであれば、サインインすることなく(Twitter の利用規約に従うことなく)誕生日を取得できます。

HTML

スクレイピングのため、Twitter の出力する HTML に大きく依存しますが、2015/10/19 時点では、次のような HTML です。

C# & HtmlAgilityPack でスクレイピング

C# とスクレイピングに便利かもしれない HtmlAgilityPack で取得してみます。HtmlAgilityPack は NuGet でインストールします。

スクリーンネームから誕生日部分のテキストを取得するメソッドはこんな感じ。@class=""ProfileHeaderCard-birthdateText u-dir"" のように class 属性の部分は完全一致しないと取得できないんですね。

メソッドの呼び出しはこんな感じです。

以上です。