そんな気分になったので書いてます。
必要に応じて書き足します。
そもそも
そもそもjsonとして読み込むには序盤のいらない部分を切り落とすとかなんかしらの処理をしないといけない
import re import datetime import json tw_open = open("tweets.js","r",encoding="utf-8") twr = tw_open.read() twr = re.sub("window.YTD.tweet.part0 = ","",twr) twrj=json.loads(twr)
構造
これブログだと表記できない?
'tweet' 'retweeted', 'source', 'entities', 'hashtags', ※該当があれば 'text' 'indices' 'symbols', 'media',※該当があれば "expanded_url" "source_status_id" 'indices' 'url' 'media_url' 'id_str' 'source_user_id' 'id' 'media_url_https' 'source_usre_id_str' 'sizes' 'thumb' 'w' 'h' 'resize' 'large' 'w' 'h' 'resize' 'small' 'w' 'h' 'resize' 'mediun' 'w' 'h' 'resize' 'type' 'source_status_id_str' 'display_url' 'user_mentions', 'urls' 'display_text_range', 'favorite_count', 'id_str', 'truncated', 'retweet_count', 'id', 'created_at', 'favorited', 'full_text', 'lang' 'extended_entities' 'media' 'expanded_url' 'source_status_id' ほか
要素詳細
source
何を使ってツイートしたか。例: "Twitter for iPhone"
user_mentions
リプライ先。リストみたいな形式。配列っていうべき?知らないや。
なお、リツイートした場合、ここに元ツイート主のIDが入っている。詳細はfull_textにて。
created_at
おそらくツイートされたタイミング。
RTの場合はRTをしたタイミング。
tw=eval(str(twrj[n]["tweet"])) datetime.datetime.strptime(str(tw["created_at"]),"%a %b %d %H:%M:%S %z %Y").replace(tzinfo=None)
とかで引っ張り出せば使いやすいかも。知らんけど。
truncated
基本的にfalseなので気にしなくていいって聞いた。字数制限を突破してツイートされたときに発生するらしい。するんか?
full_text
ツイートのテキストが入っている。
なお、リツイートした場合は、
「"full_text" : "RT @colopl_quiz: ガトリンの公約を発表します(/・ω・)/\nガトリンが1位になったら、人類総ナース!ということで6人全員がナースになります!\n詳細はコチラ:https://t.co/nLZeat3PKx\n#黒ウィズ #アイドルキャッツ https://t.co/…",」
的な感じで、最初に「RT @[オリジナルツイートのアカウント(screen_name)]: 」がつく。
リプライの場合は、@[リプライ先ののアカウント(screen_name)] 」がつくと思われる。