前提・実現したいこと
jupyterでTwitterの特定のツイートのリプライを取得するシステムを作っています。
実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
TypeError: search_tweets() missing 1 required positional argument: 'range'
該当のソースコード
Jupiter
1import urllib 2from requests_oauthlib import OAuth1 3import requests 4import sys 5def main(): 6 7 # APIの秘密鍵 8 CK = '*****' 9 CKS = '*****' 10 AT = '*****' 11 ATS = '*****' 12 # ユーザー・ツイートID 13 user_id = '@*****' 14 tweet_id = '*****' # str型で指定 15 # 検索時のパラメーター 16 count = 100 # 一回あたりの検索数(最大100/デフォルトは15) 17 range = 100 # 検索回数の上限値(最大180/15分でリセット) 18 # ツイート検索・リプライの抽出 19 tweets = search_tweets(CK, CKS, AT, ATS, user_id, tweet_id, count, range) 20 # 抽出結果を表示 21 print(tweets[0:5]) 22def search_tweets(self, CK, CKS, AT, ATS, user_id, tweet_id, count, range): 23 # 文字列設定 24 user_id += ' exclude:retweets' # RTは除く 25 user_id = urllib.parse.quote_plus(user_id) 26 # リクエスト 27 url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count) 28 auth = OAuth1(CK, CKS, AT, ATS) 29 response = requests.get(url, auth=auth) 30 data = response.json()['statuses'] 31 # 2回目以降のリクエスト 32 cnt = 0 33 reply_cnt = 0 34 tweets = [] 35 while True: 36 if len(data) == 0: 37 break 38 cnt += 1 39 if cnt > range: 40 break 41 for tweet in data: 42 if tweet['in_reply_to_status_id_str'] == tweet_id: # ツイートIDに一致するものを抽出 43 tweets.append(tweet['text']) # ツイート内容 44 reply_cnt += 1 45 maxid = int(tweet["id"]) - 1 46 url = "https://api.twitter.com/1.1/search/tweets.json?lang=ja&q="+user_id+"&count="+str(count)+"&max_id="+str(maxid) 47 response = requests.get(url, auth=auth) 48 try: 49 data = response.json()['statuses'] 50 except KeyError: # リクエスト回数が上限に達した場合のデータのエラー処理 51 print('上限まで検索しました') 52 break 53 print('検索回数 :', cnt) 54 print('リプライ数 :', reply_cnt) 55 return tweets 56if __name__ == '__main__': 57 main()
補足情報(FW/ツールのバージョンなど)
環境:python 3.7.3,Jupyter Notebook
この方のコードを参考にしました。
https://qiita.com/h_tashiro/items/ed119c237f5595c3d7b8
似たような質問がありましたがいまいち理解できず困っております。
どうぞよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/13 07:56