no-image

ツイッターcsvからつぶやきだけを取得する。【python】

ツイート履歴からつぶやきだけをぬきだす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):というようにすると好きな範囲をとってくることができます。(ただ、これは条件分岐構文で書いたほうがよいと思います。一応好きなところをとれるよということでした。それでは。