128
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python で Twitter から情報収集 (環境構築編)

Last updated at Posted at 2014-11-08

今回作るシステム

7b140c972221df05d34479ef3cdd851e.png

Twitter から情報をクロールしてきて、情報を整形し、ひたすらDBにストアしていくためのシステムを構築してみる。とりあえず実験として Vagrant を利用して仮想環境上にテスト環境を作成する。

  • Vagrant (VirtualBox) の仮想環境を利用
    • OS:
      • Debian Wheezy 7.6
    • Language:
      • Python 2.7.3
        • virtualenv にてモジュールを管理。
    • Database:
      • MySQL
    • Tools:
      • MeCab 0.99
      • IPA辞書 (mecab-ipadic-utf8)
      • MeCab の Python バインディング

仮想マシン周りの環境構築

VirtualBox のインストール

https://www.virtualbox.org/wiki/Downloads から最新版をインストール。

仮想環境の作成は Vagrant から行う。

Vagrant のインストール

http://www.vagrantup.com/downloads から最新版をダウンロードしてインストール。

仮想マシン作成

Vagrantで仮想環境を作成する。

$ mkdir -p ~/vagrant/debian7_twitter
$ vagrant box add debian7.6_twitter https://github.com/jose-lpa/packer-debian_7.6.0/releases/download/1.0/packer_virtualbox-iso_virtualbox.box
$ vagrant init debian7.6_twitter
$ vagrant up
$ vagrant ssh

これで仮想環境にログインできる。

終了する場合は、ログアウト後

$ vagrant halt

で終了できる。以後は仮想環境を作成したディレクトリ下で、
vagrant up -> vagrant ssh でいつでもこの環境にログイン可能。

Python 周りの設定

Python

デフォルトで Python 2.7.3 がインストールされているのでこれを利用する。

$ Python -V
Python 2.7.3

virtualenv

プロジェクト単位で、使用するモジュールを管理するために virtualenv を利用する。

インストール

apt を利用する。

$ sudo apt-get update
$ sudo apt-get install python-dev python-virtualenv

virtualenv による Python 環境の切り替え

任意の作業ディレクトリに移動して以下のコマンドを実行する。

$ virtualenv twi-py

これでカレントディレクトリに twi-py ディレクトリが作成され、ここに独立した Python 環境ができる。
作成したディレクトリに移動し、下記コマンドを実行する。

$ source bin/activate

シェルプロンプトの先頭に (twi-py) ... がついていれば twi-py 環境に切り替わっている。

特定のモジュール環境から抜けてデフォルトに戻るには下記コマンドを実行する。

$ deactivate 

以後 MeCab 関連のモジュールのインストール等はこの twi-py 環境で行う。

MeCab 周りの設定

MeCab 本体のインストール

apt を利用する。

$ sudo apt-get update
$ sudo apt-get -y install mecab
$ sudo apt-get -y install mecab-ipadic-utf8
$ sudo update-alternatives --config mecab-dictionary # ipadic-utf8 になっているかどうか確認

MeCab の Python バインディング (mecab-python) のインストール

apt で必要なライブラリのインストール。

$ sudo apt-get -y install python-dev
$ sudo apt-get -y install libmecab-dev
$ sudo apt-get -y install build-essential
$ sudo apt-get -y install g++

Debian 7 wheezy 用のバージョンの Python バインディングを twi-py 環境下にインストール。

(twi-py)$ pip install https://mecab.googlecode.com/files/mecab-python-0.99.tar.gz

MeCab と Python の動作確認

「すもももももももものうち」を形態素解析してみる。

$ Python
>>> import MeCab
>>> mecab = MeCab.Tagger("-Ochasen")
>>> print mecab.parse("すもももももももものうち")
すもも	スモモ	すもも	名詞-一般		
も	モ	も	助詞-係助詞		
もも	モモ	もも	名詞-一般		
も	モ	も	助詞-係助詞		
もも	モモ	もも	名詞-一般		
の	ノ	の	助詞-連体化		
うち	ウチ	うち	名詞-非自立-副詞可能		
EOS

>>>

きちんと解析できた。

これで今回作るシステムを実現するための道具は揃った。

MySQL の設定

インストール

apt を利用してインストール。

MySQL の設定

インストール

apt を利用してインストール。

$ sudo apt-get -y install libmysqlclient-dev
$ sudo apt-get -y install mysql-server-5.5

インストール中、rootパスワードの設定を求められるので vagrant と入力。

動作チェック

root ユーザでログイン。

$ mysql -u root -pvagrant
mysql> SELECT user,host,password FROM mysql.user; 
+------------------+----------------------------------+-------------------------------------------+
| user             | host                             | password                                  |
+------------------+----------------------------------+-------------------------------------------+
| root             | localhost                        | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root             | packer-virtualbox-iso-1411922062 | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root             | 127.0.0.1                        | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| root             | ::1                              | *04E6E1273D1783DF7D57DC5479FE01CFFDFD0058 |
| debian-sys-maint | localhost                        | *A5B3FEE41C7F1F2C147B4876D39D6A4F65E79B7D |
+------------------+----------------------------------+-------------------------------------------+

無事動いた。

MySQL にアクセスするための Python のモジュールをインストール

twi-py 環境下にインストール。

(twi-py)$ pip install MySQL-python

動作チェック

$ python
>>> import MySQLdb

これでエラーが出なければOK。

最後に

これで必要なツールはひと通り揃った。
これからクロール部分、情報の成形部分、DBへのストア部分等を作っていく。
それらの記事はまた後ほど。

128
135
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
128
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?