ツイート履歴からつぶやきだけをぬきだすpythonコード
もしかすとご存知の方もいるかもしれませんが、ツイッターの設定から全ツイート履歴をcsv形式でダウンロードすることができます。.csvファイルはカンマ区切りでデータが整列されているファイルです。(たぶんあっていると思う)
.csvファイルはpythonのcsvモジュールを使うことによって、取り扱うことができます。しかも外部モジュールではなく最初から使えるモジュールです。
ポイントは1行1行がリストになっていて、しかもその1行分がカンマ区切りされており、カンマ区切りのものもリストになっています。そのため[ ][ ]リストを2つならべてアクセスしています。(わかりにくい。)
import csv, pprint, codecs file = open('tweets.csv', encoding="utf-8") csv_reader = csv.reader(file) data = list(csv_reader) ''' print(len(data))#全ツイートの数 ''' count = 0 for i in range(len(data)): count += 1 tweetdata = str(count) + ',' + str(data[i][5]) pprint.pprint(tweetdata)
コードの解説
まずこのコードは動きはしますが、未完成コードです。pprint.pprint()を使って表示しても、はしょられて表示さらます。9行目はforループを使って回しています。range(len(data))とすれば全てのツイートリストをさらってくることができます。
count宣言しているのは単にみやすくするためです。
- 11行目はdata[i][5]としいます。[i]はどんどん回して取ってきます。
- [5]としてるのは、カンマ区切りの5番目(リストなのでたぶん4番目)につぶやきがあるからです。
このコードを応用すると色々なことができるかもしれません。何個とってくるか、期間を設定したり、正規表現を使うことで、キーワードを抽出できるかもしれません。
pythonじゃなくてもできるかも
ツイッターでキーワードを抽出するプログラムはpowershellで作っておられる方がいらっしゃいます。
PowerShell基礎文法最速マスター – PowerShell Scripting Weblogのどこかにコードがあったと思います。今回紹介したコードももっと改良して、色々できるようにはしたいです。
追記
for i in range(1000, 2000):というようにすると好きな範囲をとってくることができます。(ただ、これは条件分岐構文で書いたほうがよいと思います。一応好きなところをとれるよということでした。それでは。