Python活用事例① ~Twitter APIを用いてユーザーのフォロー変動日を可視化

依頼の背景

昨年末に、通っているビリヤード場の常連の方から、「好きな画家の着想にはフォローし始めたユーザーの考えが影響しているのではないか」という仮説を検証するために、「特定ユーザーがフォローしているユーザーを取得し、いつフォローし始めたかを整理するプログラムができないか」を依頼されました。

実際のツールイメージをもとに、10分程度の打合せを2度行うことで、完成しました。

システム要件・対応概要

対応スケジュール

2019年12月中旬から2020年1月上旬(うち作業工数は4人日)
※作業工数は実績ベースで計測しているわけではなく、あくまで感覚値です。(トータルしたら4日くらいかぁ程度)

業務要件(実現したいこと)

  • 取得したいユーザーのIDが記載されたExcelファイルのシートから対象者を抽出
  • それぞれのユーザーについて、 フォローしているユーザーの①名前、②URL、③フォロー日を取得
  • 取得結果をユーザーごとにシートを分けて出力

実装の難所

実装しようと思った時に、特に頭を使った点は以下2点。
その他にも処理速度の問題で、実装方式をどれにするかで迷った点は多々ありましたが。。

  • ②URLについて、Twitter APIで取得できる情報ではないので、どのような考え方で整理するか。
  • 基本的にフォローしている人は変動しないことが多いため、新たにフォローしはじめた人と、元々フォローしていた人をどのように峻別し、③フォロー日を整理するか。

実現方式

上記の難所に対して、以下の通りそれぞれ対応することで解決しました。

  • ②URLについては、TwitterのURLが生成される法則性から、PythonにてURLとなる文字列を作成し出力
  • 元々作成されていたDataframeと、アプリを動かした日の最新情報に係るDataframeを突合、重複等を判別の上、差分に対してのみ日付を挿入

実際のツール挙動

以下のように「取得リスト」シートに、対象のユーザーIDを入力しておくことで、

シート毎に情報を出力するツールが完成しました。(サンプルは当方のIDを用いて動かしています。)

終わりに

身近なことでも、そんなに時間をかけることなく、自動化をすることができます。かくいう自分も、やってみて案外できることに驚きを隠せませんでした。

ちょっと自動化できたら楽だな~と思っていることがあれば、こちらのお問い合わせフォームからご連絡いただければ幸いです。

これからは、Pythonについて少しずつブログでも触れていければと思っています!