TwitterのTLから二次元画像だけ収集しよう! (1)環境構築

はい、なぜかアホほど疲れてる状態でブログ書いてます。

とりあえず今回はPythonの環境を入れて、ツイートが出来るようになることを目標にします。

ツイートが出来れば、きちんとTwitter APIが扱えるということになるので動作チェックとして行います。

 

Python環境の準備

では、ベースから作っていきましょう。イントロダクションでも書いたように、Windows10をターゲットで書いていきます。

今回は使用するモジュールを全てインストールした状態のPython環境を配布します。それがこちら!

Google ドライブに上げてあるファイルとなります。容量は171MBと少々大きいです。

ダウンロードに少し時間がかかると思うので、環境の詳細な説明をします。Linux等の別OSの方はこちらを参考に環境を構築してください。

 

Pythonのバージョンは3.5.4となっています。少し古いバージョンで申し訳なのですが、昔構築した環境をそのまま流用してるのでご了承ください。

おそらくPython 3.5以降なら問題なく動かせるはずです。Python 2.xとか言ってるやつはどっか行け

モジュールに関してはpipですでに以下の分を入れてあります。

certifi==2017.7.27.1
chardet==3.0.4
dlib==19.7.0
idna==2.6
numpy==1.13.3+mkl
oauthlib==2.0.4
opencv-python==3.3.0.10
requests==2.18.4
requests-oauthlib==0.8.0
scipy==0.19.1
six==1.11.0
tweepy==3.5.0
urllib3==1.22
win-unicode-console==0.5

どのモジュールも一応簡単にインストール出来るのですが、dlibだけは少々特殊でビルドが必要になります。

また、今回配布しているものは32bit版のPythonとなります。

 

さて、ダウンロード出来たでしょうか?出来たら適当な場所で解凍を行ってください。今後の作業は全て解凍後のフォルダー内で行います。

中にはこのようにフォルダーとバッチファイルが置いてあります。では、start.batを実行してみましょう。

何も起きずにコマンドプロンプトが立ち上がったように見えます。ですが、Pythonを動かす準備がすでに出来ています。

ここでstart.batを覗いてみましょう。

@echo off
set "PYTHONHOME=%~dp0Python"
set "PATH=%PYTHONHOME%;%PATH%"

start

重要なのは2~3行目です。ここで環境変数を設定し、Pythonを実行可能状態しています。その後、新しいコマンドプロンプトが立ち上がるようになっています。

ですので、where pythonとコマンドを叩くとpython.exeの場所が表示されます。すでにPythonが存在している環境でも先にこの配った方の環境が優先されるようになります。

で、一度pythonを動かしてみましょう。pythonと実行してみます。

こうなれば大丈夫です。このウィンドウは閉じてしまって構いません。

起動しなかった人はVisual C++ 2015 Runtimeが入ってない可能性があります。下のリンクからダウンロードしましょう。

Visual Studio 2015 の Visual C++ 再頒布可能パッケージ
Visual C++ 再頒布可能パッケージは、Visual Studio 2015 を使用してビルドされる C++ アプリケーションを実行するために必要なランタイム コンポーネントをインストールします。

選択画面になったら、vc_redist.x86.exeを選択してダウンロードしてください。

ダウンロードした実行ファイルを実行して、インストールすれば動くはずです。

これでPythonの環境は完成です。今後、スクリプトを実行する場合はstart.batからコマンドプロンプトを起動してコマンドを叩くことになります。

普通にコマンドプロンプトを立ち上げてしまうとPythonをきちんと認識されないので、注意してください。

Twitter APIのキーを取得しよう

スクリプトを実行する前にTwitter APIの認証キーを取得しましょう。これを使用することで、TwitterのAPIを触れるようになります。

すでにAPIキーを持っている人はこの項目をスキップしてもらって構いません。

では、まずTwitterにログインした状態で以下のページにアクセスします。

Twitter Application Management
Application registration & configuration for developers using the Twitter REST & Streaming APIs.

すると次のようなページが表示されます。

次に真ん中に表示されているCreate New Appをクリックします。

ここにアプリケーションの名前(Name)、アプリケーションの説明(Description)、Webサイト(Website)を入力します。

NameとDescriptionは日本語でもいけます。Nameは32文字が最大です。Descriptionは10文字以上200文字以下です。
Websiteはなんでもいいです。Twitterのプロフィールページとかが妥当でしょうか?

その後、一番下のチェックボックスにチェックを入れてCreate your Twitter applicationをクリックします。

で、上手く行くとアプリケーションの詳細画面が出るのですが、エラーが表示される場合があります。

このエラーは使用したTwitterアカウントを電話番号認証してない場合に表示されます。

この場合は素直に認証を行うか、公式クライアントのキーをゴニョゴニョして使いましょう。ここでは説明しません。

アプリケーションの詳細画面がこちらになります。

この画面になったら、タブのKeys and Access Tokensをクリックします。

で、Your Access Tokenの場所に初期状態だと何かボタンが表示されているはずです。それをクリックします。(すみません、名前を忘れてしまいました)

Tokenが発行されたら、Consumer Key(API Key)・Consumer Secret(API Secret)・Access Token・Access Token Secretのそれぞれを何処かにメモしておきます。

ここで、全てのキーは他人にバレないようにしてください。流出すると少し面倒なことになります。

これでTwitterのAPIキーは取得出来ました。

APIキーを使ってツイートしてみる

では、取得したAPIキーが使用可能かをテストするためにスクリプトでツイートをしてみます。

まず、キーを保存しておく設定ファイルを書きます。今回はJSONフォーマットで書きます。

あっ、一つ言い忘れていました。スクリプトを書くエディタの話です。

今回はVisual Studio Codeを推奨とします。まあ、好きなエディタを使ってもらって構わないのですが、必ずUTF-8で保存するようにしてください。

よく分からなければ、VS Codeをインストールして使いましょう。おすすめです。(ステマ)

では、設定ファイルを作っていきましょう。setting.jsonというファイルを作成して、その中に以下の内容を書きます。

{
"CK": "(Consumer Keyを書く)",
"CS": "(Consumer Secretを書く)",
"Admin_Key": "(Access Tokenを書く)",
"Admin_Secret": "(Access Token Secretを書く)"
}

書く際にカッコの中で指定したキーに置き換えて書くようにしてください。

一応、例を示しておきます。(このキーはダミーです)

{
"CK": "wMT6VyPwgj0ajssoerJJOWE",
"CS": "uEUteRjycqlACClsxDEe2QGyH1KtKpSO6zwK5jeiri6JreO",
"Admin_Key": "5327238346490-jfaiowJMjuioeJe344gsJJwe123",
"Admin_Secret": "i07u5tPXqyEHL1w5c4Y2wLZJM89we7tJ89p7yetUGET"
}

こんな感じで書けたら保存して閉じましょう。この設定ファイルは今後書くスクリプトで共通して使用していきます。

では、次にツイートを行うスクリプトを書きます。ファイル名はcheck.pyにしておきます。

内容はこちらです。今回はgistに上げたので、ダウンロードしてもらっても構いません。

「テストツイート」とツイートされるスクリプトです。出来たら保存しておきます。

ここまで出来れば、あとは実行するだけです。まず、start.batでコマンドプロンプトを起動します。

起動したらpython check.pyと実行してみましょう。

tweepy testとのみ表示されれば成功です。Twitterを開いてきちんと呟けているか確認してみます。

大丈夫そうです。何かエラーが出た場合は、おそらくAPIキーの書き方が間違っています。

どうしても分からなければ、コメントで教えてください。

 

今回はこれで終わりです。次回から実際に画像を回収していきます。

ちなみにcheck.pyはもう要らないので、消してもらっても大丈夫です。

投稿者: 赤西 真論

アイマスに人生を変えられ、コードを書くのが嫌いになった大学生

One Reply to “TwitterのTLから二次元画像だけ収集しよう! (1)環境構築”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください