質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1434閲覧

リアルタイムで収集したツイート数を数えたい

farinelli

総合スコア61

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/16 04:33

編集2019/08/16 04:53

Pythonでリアルタイムで取ってきたツイート数をカウントアップしたいのですが、ツイート数ではなくツイート毎の改行数が出力されてしまい困っています。
この場合どうすればいいのでしょうか?

追記: statusメソッドに関しては、ツイートが持つ属性のことだと解釈しています。(間違っていたらすみません)
こちらを参考にしていただけますと幸いです。
https://kurozumi.github.io/tweepy/streaming_how_to.html#step-1-creating-a-streamlistener
https://syncer.jp/Web/API/Twitter/REST_API/Object/Tweet/

該当のソースコード

python

1import os 2import tweepy 3import redis 4import math 5from collections import Counter 6 7#r = redis.Redis(host='localhost', port=6379, db=0) 8 9TWITTER_CLIENT_ID = os.environ['TWITTER_CLIENT_ID'] 10TWITTER_CLIENT_SECRET = os.environ['TWITTER_CLIENT_SECRET'] 11 12TWITTER_OAUTH_TOKEN = os.environ['TWITTER_OAUTH_TOKEN'] 13TWITTER_OAUTH_TOKEN_SECRET = os.environ['TWITTER_OAUTH_TOKEN_SECRET'] 14 15auth = tweepy.OAuthHandler(TWITTER_CLIENT_ID,TWITTER_CLIENT_SECRET) 16auth.set_access_token(TWITTER_OAUTH_TOKEN,TWITTER_OAUTH_TOKEN_SECRET) 17 18class StreamListener(tweepy.StreamListener): 19 def on_status(self, status): 20 text = str(status.text) 21 tweet_number = status.id_str 22 i = 0 23 #日本語ツイートをファイルに書き込んでいる 24 if status.lang == "ja": 25 with open("test20.txt", "a", encoding="utf-8") as f: 26 f.write(text) 27 28 #問題の箇所(ツイート数が知りたくて数え上げをしたいが、上手くいっていない) 29 for i in range(tweet_number.split("\n")): 30 i = i + 1 31 print("これは %d ツイート目です" % i) 32 33 def on_error(self, status_code): 34 return False 35 36stream = tweepy.Stream(auth=auth, listener=StreamListener()) 37stream.sample()

補足情報(FW/ツールのバージョンなど)

iOS 10.12.6, Python 3.7.3, Atom

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2019/08/16 04:35

「status」とは何でしょうか? 第三者が検証、実行できるコードを提示すると回答得られるかもしれません。
guest

回答1

0

ベストアンサー

on_statusが呼ばれた回数=取得できたtweet数なので、以下のようにメンバ変数を使えばよいです。

Python

1# 略 2 3class StreamListener(tweepy.StreamListener): 4 5 def __init__(self): 6 super().__init__() 7 self.count = 0 # 取得したtweet数 8 9 def on_status(self, status): 10 text = str(status.text) 11 tweet_number = status.id_str 12 13 self.count += 1 14 print(tweet_number, self.count, text) # 確認表示 15 16 # 略

投稿2019/08/16 07:19

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

farinelli

2019/08/16 07:39

解決しました、有難うございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問