LoginSignup
4
9

More than 5 years have passed since last update.

Tweepyで自分のツイートを大量に取得する

Last updated at Posted at 2017-05-28

ここでは Python のライブラリである Tweepy を使って大量に自分のツイートを集める方法を記していきます。

前提

  • Python3系を使います(Python2系の人は頑張ってね)
  • Tweepyはインストール済みである前提で話します。
  • TwitterAPI登録は既に登録済みである

コード

Tweet_data.py
# -*- coding: utf-8 -*-

import tweepy

# Tweepyの設定
CONSUMER_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

i = 1
with open("Tweet_data.txt", "a+") as tf:
    for status in tweepy.Cursor(api.user_timeline).items():
        try:
            status = str(status.text).replace("\n","")    # ツイート内の改行を削除
            if "RT" in status:  # RTは書き込まない
                pass
            elif "https" in status: # 画像つきとURL付きツイートを書き込まない
                pass
            elif "@" in status: # リプの場合はIDを取り除いて書き込む
                status = status[status.find(" ")+1:len(status)] # "@"から" "インデックスを取得してそれ以降の部分のみ取得
                tf.write(status+"\n")
                print("Step%d: "%(i) +status)   # txtファイルに書き込まれたツイートを表示
                i += 1
            else:
                tf.write(status+"\n")
                print("Step%d: "%(i) +status)   # txtファイルに書き込まれたツイートを表示
                i += 1
        except UnicodeEncodeError: # 実行していると突然UnicodeEncodeErrorが出るが続ける
            pass

このコードを実行すると最初のツイートまで永遠に txtファイルに書き込み続けるのでツイートが十分に集まったら ctrl+c で適当に中断してもらえれば txtファイルに保存されています。

作られたtxtファイル

自分のツイートを大量に確保することに成功した
言語モデルネットワークを知りたい
えろ
所詮はマスゴミ
どれくらいツイートデータ集めようかな
多分これでUnicodeError出てもいける
お大事にね…何か違和感あったら病院行って見てもらい
買うべき
洗ったなら多少はマシか
ソースは俺のばあちゃん
まぁ多分腫れてしばらく痛いだけで済むけど割りときつい
これが野良犬なら死んでた
消毒しないと死ぬはないけど腫れますよ…
え…!?!?!?消毒してないん!?!?!?!?
なら良かったです
大丈夫ですか…
UnicodeEncodeError: 'cp932' codec can't encode character '\U0001f4a2' in position 28: illegal multibyte sequence
めっっっっっちゃ心配…
大丈夫と言われても心配なものは心配
ほんと心配
心配
ほんまに大丈夫か
いやいややばいやん
変数.find[x:y]でいけそう
空白文字以降だけを取り出したい
たとえば@JUN_NETWORKS これリプなっていうのがあった際にこれをこれリプなみたいな感じでID部分だけ消して本文だけ取り出したいんよ
@から空白文字までだけを文字列から削除する方法ないかな
かなり上手いこといったけどこんどはリプのIDが付いてきたからそれ消さないと
全然大丈夫じゃなさそう
大丈夫…?
北れ犬に噛まれすぎやろ…

とまぁこんな感じのファイルが出来ます。

わからないことがあればコメント、もしくは私のTwitterにリプを送ってもらえれば答えます。

4
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9