リハビリ 人工知能 理学療法 Deep learning Deep Neural Network ディープラーニング AI 鍼灸

人工知能・リハビリ・日記・理学療法

タイトルはAIですが、個人的な日記なので、あまり気になさらないように。

#Python Twitterで自動的にTweetを集める。コードもついています。

どうも、夜中に記事を書いています。

いきなりのカミングアウトすみません。

 

 

Twitterで自動的にTweetを集める。

以前にも書いたのですが、少しいかがわしい内容でしたので、再投稿です。

まずはインポート!

import os
import csv
import datetime
import time
import tweepy
import schedule

 

TwitterAPIキーを入力

CONSUMER_KEY = '   '
CONSUMER_SECRET = '   '
ACCESS_TOKEN = '   '
ACCESS_TOKEN_SECRET = '   '

こちらは、Twitter社から申請してパスワードを発行してください。全て英語でのやりとりなので少し難易度が高いかもしれません。

 

タブでそろえてくださいね。

def get_tweet(search_words):
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

api = tweepy.API(auth)

tweets_list = []

for tweet in api.search(q=search_words, lang="ja",      result_type="recent",count=100):
# 日本時間に変換
tweet_time = tweet.created_at + datetime.timedelta(hours=9)

tweet_dic = {}
tweet_dic["text"] = tweet.text
tweet_dic["name"] = tweet.user.name
tweet_dic["twitter_id"] = "@" + tweet.user.screen_name
tweet_dic["time"] = tweet_time.strftime("%Y/%m/%d %H:%M:%S")

tweets_list.append(tweet_dic)

return tweets_list

 

そして、

def save_tweet(csv_file_name, tweets_list):
# 指定されたcsvファイルが無ければ新規作成、あれば追記していく
with open(csv_file_name, "a", encoding="utf-8", newline="") as csv_file:
# header を設定
fieldnames = ["ツイート内容", "名前", "Twitter ID", "ツイート日時"]
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()

for tweet in tweets_list:
# データの書き込み
writer.writerow({"ツイート内容": tweet["text"],
"名前": tweet["name"],
"Twitter ID": tweet["twitter_id"],
"ツイート日時": tweet["time"]})

 

さらに、

def run():
# 保存するcsvファイル名
csv_file_name = "任意.csv"
# 検索するワード
search_words = "任意ワード",

try:
print("[DEBUG] Start saving tweet...")

# ツイートの取得
tweets_list = get_tweet(search_words)
# csvファイルに書き込み
save_tweet(csv_file_name, tweets_list)

print("[DEBUG] Finish!")
except:
print("[DEBUG] Skipped")


if __name__ == "__main__":
run()

# 以後3分毎に定期実行
schedule.every(3).minutes.do(run)

while True:
schedule.run_pending()
time.sleep(1)

 

これでTweetを集められますわー。

適当ですみません。

takuma-ai.hatenablog.com