Twitterの友達の発言から未フォローのIDを取り出す
Twitterで友達の発言を眺めていると、
「@hoge バカスwww」
なんて発言があって「@hogeってフォローしてたっけ?」なんてことがよくありますよね。・・ありますよね?とにかく僕はよくあります。
そんな僕のジェラシーを解消すべく、python-twitterを利用して、友達の発言から未フォローの人を取り出せるコードを書きました。
下準備
というほどでもないけど、昨日のpython-twitterでフレンドリストをファイルに保存するをちょっとだけ改造。ほんとにちょっとだけ。
昨日のだと、「@hogehoge」で利用するIDではなく表示名になってしまうので、IDの方を取得するようにします。
後半部分に入ったあたりにある
f.write(user.name + "\n")
を
f.write(user.screen_name + "\n")
と変更してやればおkです。これでお友達のIDをファイルに書き出すことができます。
実行
以下のコードからどうぞ。
#!/usr/bin/env # -*- coding: utf-8 -*- """ jealousy.py お友達が口に出した知らない人のIDを表示します """ import re import twitter api = twitter.TwitterApi("ユーザー名", "パスワード") ftl = api.GetFriendsTimeline() suspects = [] # タイムラインから名前だけ取り出す for friend in ftl: suspects += re.findall("@([a-zA-Z0-9_]+)", friend.text) print "---名前一覧---" for i in suspects: print i filename = "friendsid.txt" # followingユーザー一覧 f = open(filename) myfriends = f.read().split('\n') f.close() print "---未フォロー---" for i in suspects: if not i in myfriends: print i
正規表現が全然わからんかった><
@([a-zA-Z0-9_]+)
これで「@で始まる英数字とアンダースコアの文字列」になるはず!
実行してみます。
$ python jealousy.py ---名前一覧--- ---未フォロー---
発言に含まれる名前一覧と、そのうちフォローしていない名前を表示します。
・・・つもりが誰も@hoge発言してない><
もういっかい
$ python jealousy.py ---名前一覧--- beeash natu_n Ta_ka_ki Misho no_exist_user skylab13 msax supistar ---未フォロー--- beeash natu_n Ta_ka_ki no_exist_user
できた!!! わざわざ@no_exist_userて発言したのにいきなり増えて助かったw
これで焼きもちやきの僕も安心して眠ることができます。正規表現は全然使ったことがなかったので、勉強になりました。全然理解できていないことがわかりました><