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

DevelopmentC#,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

以上です。

DevelopmentC#,Twitter

Posted by jz5