背景
Windows環境において、ツイートデータを取得・格納・分析するための環境を構築したので、備忘録として整理しました。とくに、分析においては、手軽にファイル操作(grep、sed、awk、pythonなどを用いての)をしたかったので、WSL(Windows Subsystem for Linux)を有効にして、bash(ubuntu)を導入しました。
1.手順概要
- 一連の環境は、WSL1 のbash上で実現することにしました。
- WSLに関しては、Windows Subsystem for Linux (WSL1) をインストールしてみよう!を参考にして導入しました。
- 今回、ファイル操作において、MongoDBも利用したかったので、WSL1 上においてMongoDBの利用実績のある、ubuntu 18.04でのbashを構築しました。
2.詳細手順
python関連
pythonそのものついては、ubuntuを導入した際に、導入されていたので、改めて導入は不要。
- パッケージ導入用のpip3を導入
sudo apt install python3-pip
- pythonから sqlite3をアクセスできるようにする
pip3 install pysqlite3
- unicodecsvをつかえるようにする
pip3 install unicodecsv
pythonからMongoDB操作のためのツール:mongo_daoの導入は、odicchi/tweet_learningから取得
さらに、pymongoも必要となり以下のコマンドで導入
pip3 install pymongo
- また、python からツイートデータ操作にために便利な tweepyを導入
pip3 install tweepy
- さらに、Twitter API を操作するための認証関連を簡単に実現するために、OAuth関連のパッケージ導入
pip3 install requests requests_oauthlib
データ格納関連
- MongoDBの導入は、Windows Subsystem for Linux でデータベースを使ってみるを参考に、以下のコマンド発行して導入。データベースの起動・停止方法なども、参考先を活用。
sudo apt-get install mongodb
- sqlite3の導入
sudo apt-get install sqlite3
3.その他
- WSLからWindowsファイルシステムにアクセスするには、WSLとwindows間のファイル連携を参考にしました。たとえば、cドライブにアクセスしたい場合は、/mnt/cにて操作できるようです。
4.サンプル実行
- 構築環境において、サンプル実行として、Twitter において、ある人(ID)がフォローしているアカウント(ID・アカウント名・スクリーン名)情報を抽出した際に利用したpythonコードを掲載します。コードのベース部分は、tweepy で フォローした人をリストアップするを活用させていただいております。
#!/usr/bin/python
import config
import tweepy
# ログイン設定
twitter_conf = {
'consumer' : {
'key' : config.CONSUMER_KEY,
'secret' : config.CONSUMER_SECRET
},
'access' : {
'key' : config.ACCESS_TOKEN,
'secret' :config.ACCESS_TOKEN_SECRET
}
}
# 認証
auth = tweepy.OAuthHandler(
twitter_conf['consumer']['key'],
twitter_conf['consumer']['secret'])
auth.set_access_token(
twitter_conf['access']['key'],
twitter_conf['access']['secret'])
# tweepy初期化
api = tweepy.API(auth)
my_info = api.me()
friends_ids = []
id = 'XXXXXXX' # ターゲットIDを指定
# フォローした人のIDを全取得
# Cursor使うとすべて取ってきてくれるが,配列ではなくなるので配列に入れる
for friend_id in tweepy.Cursor(api.friends_ids, user_id=id).items():
friends_ids.append(friend_id)
# 100IDsずつに詳細取得
for i in range(0, len(friends_ids), 100):
for user in api.lookup_users(user_ids=friends_ids[i:i+100]):
print (str(user.id) + " : " + user.name + " : @" + user.screen_name)
- また、認証用情報は、config.pyというファイルを作成して、外出ししています。
CONSUMER_KEY = "XXXXXX"
CONSUMER_SECRET = "XXXXXX"
ACCESS_TOKEN = "XXXXXX"
ACCESS_TOKEN_SECRET = "XXXXXX"
関連記事
1.Windows Subsystem for Linux (WSL1) をインストールしてみよう!
2.Windows Subsystem for Linux でデータベースを使ってみる
3.WSLとwindows間のファイル連携
4.tweepy で フォローした人をリストアップする