[트위터] 자신의 모든 트위터를 좋아요가 많은 순서대로 배열하고 싶어요!
자신의 모든 트위터 다운로드
먼저 여기.를 참고하여 자신의 모든 트위터를 다운로드하세요.
Python 코드 실행
다운로드한 아카이브 데이터의 데이터 디렉토리에 다음 Pythhon 코드를 배치하여 실행합니다.
트위터의 계정 이름, 데이터 디렉터리를 저장하는 경로를 자신의 것으로 변경하십시오.
자신의 운행 환경은 다음과 같다.
import json
from dateutil.parser import parse
from pytz import timezone
import codecs
import subprocess
# Twitterのアカウント名
account_name = "自分のTwitterアカウント名"
# アーカイブデータディレクトリのパス
dir_path = "/自分のアーカイブデータのディレクトリパス/data"
# 出力結果のファイル名
all_tweet_file_name = "tweet.tsv"
encode = 'utf-8'
# jsonファイルを開いて読み込む
with codecs.open('tweet.js', 'r' , encode, 'ignore') as f:
data = f.read()
tweet = json.loads(data[data.find('['):])
# 書き出すファイルを開く
f = open(all_tweet_file_name, 'wb')
# 見たいデータを出力する
for t in tweet:
s = t['tweet']['full_text']
e = t['tweet']['entities']
if 'urls' in e:
for u in e['urls']:
s = s.replace(u['url'], u['expanded_url'])
timestamp = parse(t['tweet']['created_at']).astimezone(timezone('Asia/Tokyo')).strftime("%Y-%m-%d %H:%M:%S")
s = s.replace("\n", " ")
s = s.replace("\r", " ")
s = "https://twitter.com/" + account_name + "/status/" + t['tweet']['id']+ "\t" + timestamp + "\t" + t['tweet']['retweet_count'] + "\t" + t['tweet']['favorite_count'] + "\t" + s + '\n'
f.write(s.encode(encode))
f.close()
# いいね数の多い順にソート
subprocess.run("sort -t$'\t' -k4rn " + all_tweet_file_name + " -o " + all_tweet_file_name, shell=True, cwd=dir_path)
출력된 TSV 파일은 엑셀과 넘버 등으로 열면 되며, 트위터는 수량이 많은 순서로 배열된다.다음은 자신의 파일 데이터로 시험해 본 것이다.
표 왼쪽에서 세어 놓은 네 번째 열이 비교적 좋다.
이렇게 하면 자신의 모든 트위터를 좋아요가 많은 순서대로 배열할 수 있다!
특정 키워드가 포함된 트위터에 좋아요가 많은 순서대로
search_filter_word에 키워드를 지정하면 키워드가 포함된 트위터에 수량이 많은 순서로 배열할 수 있다.
tweet_log.py
import json
from dateutil.parser import parse
from pytz import timezone
import codecs
import subprocess
# Twitterのアカウント名
account_name = "自分のTwitterアカウント名"
# アーカイブデータディレクトリのパス
dir_path = "/自分のアーカイブデータのディレクトリパス/data"
# 出力結果のファイル名
all_tweet_file_name = "tweet.tsv"
search_file_name = "tweet_result.tsv"
# フィルタするキーワード
search_filter_word = ["hogehoge", "fugafuga"]
encode = 'utf-8'
# jsonファイルを開いて読み込む
with codecs.open('tweet.js', 'r' , encode, 'ignore') as f:
data = f.read()
tweet = json.loads(data[data.find('['):])
# 書き出すファイルを開く
f = open(all_tweet_file_name, 'wb')
# 見たいデータを出力する
for t in tweet:
s = t['tweet']['full_text']
e = t['tweet']['entities']
if 'urls' in e:
for u in e['urls']:
s = s.replace(u['url'], u['expanded_url'])
timestamp = parse(t['tweet']['created_at']).astimezone(timezone('Asia/Tokyo')).strftime("%Y-%m-%d %H:%M:%S")
s = s.replace("\n", " ")
s = s.replace("\r", " ")
s = "https://twitter.com/" + account_name + "/status/" + t['tweet']['id']+ "\t" + timestamp + "\t" + t['tweet']['retweet_count'] + "\t" + t['tweet']['favorite_count'] + "\t" + s + '\n'
f.write(s.encode(encode))
f.close()
# いいね数の多い順にソート
subprocess.run("sort -t$'\t' -k4rn " + all_tweet_file_name + " -o " + all_tweet_file_name, shell=True, cwd=dir_path)
# キーワードフィルタ
subprocess.run("cat " + all_tweet_file_name + " | awk 'BEGIN{FS=\"\t\"} $5 ~ /" + '|'.join(search_filter_word) + "/ {print $0}' > \"" + search_file_name + "\"", shell=True, cwd=dir_path)
참조: 트위터 자신의 모든 트위터 역사를 다운받아 인터넷에서 할 수 없는 DM 검색도 해봤다
Reference
이 문제에 관하여([트위터] 자신의 모든 트위터를 좋아요가 많은 순서대로 배열하고 싶어요!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kanatano_mirai/items/472b6349e13e0ceb3c88텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)