なんとなくPython使ってtweet全削除したいと思ったので削除。
ここ参考にすればよいです。
だけでは寂しいので環境とか手順とか引っかかった点とか。
環境とか
Windows 8.1
Python 3.6.8
anacondaを使用
apiのアクセストークンなどは取得済み
手順
- Twitter Developersでapiの権限変更、再発行
PermissionsタブでAccess permissionをRead,write,and direct messagesに変更
Keys and tokensタブでAccess token & access token secretをRegenerate - twitterで過去のツイート取得
設定とプライバシー→Twitterデータ→Twitterデータをダウンロード - python-twitterをインストール
Anaconda Prompt から pip install python-twitter - 全削除のスクリプトと3で取得したツイートファイル(tweets.js)を同じフォルダに置く
- 全削除のスクリプト実行
引っかかった点とか注意点とか
- apiの権限変更後はtokenの再発行が必要だった
- tokenコピペしたら末尾に空欄が入ってた
- 参照先ではtweets.csvだけど今はtweet.js
- tweet.jsの書式はutf-8nなのでファイルオープンにエンコーディング指定(encoding='utf-8')が必要
- tweet.jsを読み取った後何かしらの変換が必要
window.YTD.tweet.part0 = [ { "hoge1" : false, "id" : "12345", }, { ... }]
みたいな書式になってる。 window.YTD.tweet.part0 = を削除して保存。json.loadすれば楽。
with open('tweet.js',encoding='utf_8') as f: tweetsjson=json.load(f) for tweet in tweetsjson: print(tweet['id']+':'+tweet['full_text']) api.DestroyStatus(tweet['id'])
一行ずつ読み込んで' "id"'で開始してれば数字部分を読み込んで削除、でもよいかも。("id"自体はRTやらmentionやらいくつか種類があるので注意)
メモ
エンコード時、デフォルトで使われる文字コードはOSに依存。windowsではcp932(Shift_jisの独自拡張)が使用される。