Twitter ユーザーの誕生日を取得
Twitter では誕生日を設定できます。誕生日を設定すると、広告のターゲティングに活用されるとのこと。誕生日は「年」と「月日」ごとに公開範囲を設定でき、誕生日当日のユーザーのプロフィールページには、風船が飛ぶ機能があります。
誕生日の取得
さて、誕生日は Twitter API で取得できないため、スクレイピングするしかありません。誕生日を全体に公開しているユーザーであれば、サインインすることなく(Twitter の利用規約に従うことなく)誕生日を取得できます。
HTML
スクレイピングのため、Twitter の出力する HTML に大きく依存しますが、2015/10/19 時点では、次のような HTML です。
https://gist.github.com/jz5/19299eca50c411217dc7
C# & HtmlAgilityPack でスクレイピング
C# とスクレイピングに便利かもしれない HtmlAgilityPack で取得してみます。HtmlAgilityPack は NuGet でインストールします。
スクリーンネームから誕生日部分のテキストを取得するメソッドはこんな感じ。@class=""ProfileHeaderCard-birthdateText u-dir""
のように class 属性の部分は完全一致しないと取得できないんですね。
https://gist.github.com/jz5/1743957b0c08a58c9be5
メソッドの呼び出しはこんな感じです。
https://gist.github.com/jz5/441d1e0dad59da62c2c1
以上です。