paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

映画視聴ロガーを使って今年見た映画を振り返る

以前作った映画情報のツイッター投稿ツールですが、
ツイッターを自分用の簡単な映画DBとして使わせてもらっています。

paloma69.hatenablog.com

DBというからには必要な情報が抜き出せないといけませんよね。

APIの練習がてら投稿した情報を抜き出したいと思います。

環境

ノートPCのWSL ubuntuです。

PS C:\Users\masashi> wsl lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic
PS C:\Users\masashi> wsl pip3 list --format=columns | findstr tweepy
tweepy              3.8.0

抜き出しツールの処理

  1. 期間を指定する
    • 今回の記事に間に合わなかったのでスキップします。
  2. 本文を取得する
  3. 本文からタイトルのみ抽出する
  4. 投稿した日付とタイトルを出力

使用API

tweepyのAPIを使用します。

  • user_timeline
    • 自分がツイートしたタイムラインを取得します。
    • pager系の処理をしないと最大200件までしか取れません。
    • 今回は200で足りました。

user_timelineで帰ってくる値から以下の2つを使います。

  • created_at

    • 投稿日時です。
    • 取得時nativeのUTCで認識されてしまうので、手動で9時間足してJSTにします。
      • 下手に変換するより手動が一番簡単でした
  • text

    • ツイート本文です。
    • タイトルを「」で囲っているので中身をfindすれば抜き出せますね。

コード

  • gettwmovie.py

やってることは簡単で、
自分のツイートからラベルが自ツール(tweet movieinfo)経由の投稿のみを抜き出して、
上記のcreated_atとtextの内容の処理を行っています。

import tweepy
import sys
import datetime
import configure

Consumer_Key=configure.CK
Consumer_Secret=configure.CS
Access_Token=configure.AT
Access_Secret=configure.AS

auth = tweepy.OAuthHandler(Consumer_Key, Consumer_Secret)
auth.set_access_token(Access_Token, Access_Secret)
api = tweepy.API(auth)

for info in api.user_timeline(count=200):
    if 'tweet movieinfo' in info.source:
        Posted = info.created_at + datetime.timedelta(hours=9)
        Text = info.text[info.text.find('「')+1:info.text.find('」')]
        print(Posted, Text)
    else:
        pass

実行

仮想環境作らなかったのでpython3叩きます。

masashi@DESKTOP-N095TND:~/movietweet$ python3 gettwmovie.py
2019-12-22 00:18:49 American Honey
2019-12-14 22:48:18 The Founder
2019-12-07 23:07:18 The Mule
2019-11-30 23:08:27 Atomic Blonde
2019-11-23 23:33:41 The Intouchables
2019-11-16 23:48:43 Burnt
2019-11-03 20:56:47 The November Man
2019-10-27 22:44:18 Batman
2019-10-19 21:55:43 The Internship
2019-10-14 23:09:54 Killing Them Softly
2019-10-06 20:31:38 American Hustle
2019-09-22 22:44:56 How to Talk to Girls at Parties
2019-09-14 23:20:55 Ali G Indahouse
2019-09-07 23:17:29 Dazed and Confused
2019-08-31 23:59:58 City of Tiny Lights
2019-08-24 23:40:27 Smoke
2019-08-24 16:39:12 Pulp Fiction # 練習ツイート
2019-08-24 16:35:48 APIからツイート # 練習ツイート
2019-08-22 16:34:45 APIからツイート # 練習ツイート

取れましたね!
下の3件は練習のツイートなのでSmokeからAmerican Honeyまで16件見ました。
毎週1本ペースで見ていますが、こう見ると意外と少なく感じますね。

Smoke, Atomic Blonde, The Founderあたりが面白く印象に残っています。

投稿ツールは昨年秋に作ったので本当はもっと見ているのですが
全部編は別のブログにでも書こうと思います。

振り返るといいながらタイトルを取ってきただけで終わってしまいましたが
収集ツールもできたことですし、来年は4半期か半年ごとに見た映画の棚卸ししたいですね。

今回のツールもGithubリポジトリに入れるつもりですが、
投稿ツールと同じAPI Keyまわりの処理書いてるので別ファイルに外だししたほうが良さそうです。

参考サイト

Python datetime 日付の計算、文字列変換をする方法 strftime, strptime【決定版】 - Qiita


おまけ 2019振り返り

本記事で今年は30本書くことができました。
(大みそかに間に合ってよかったです)

週一ペースの50本を目指していたのですが、
何か作業した結果を残そうとするとなかなか難しいですね。

でも自宅でもコードを書く癖や、ラボの環境が少しずつ出来たりと
プログラミング関係の進捗がちょっとですが確認できる年でした。

本業はNWインフラ屋なので、ドキュメントやconfig作りにもっとpythonを活用していきたいです。

来年もよろしくお願いします。