Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2912

WSL(bash)にツイートデータを取得・格納・分析できる環境を構築してみた

$
0
0

背景

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

データ格納関連

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 で フォローした人をリストアップする


Viewing all articles
Browse latest Browse all 2912

Trending Articles