DIY

とりあえずやってみるのメモ。技術的なメモもありますが、独り言もあります。

Twitterからデータを取得する(1)

Twitter APIを利用してデータを取得してみる。

1.pip/oauthをインストール

# curl -kL https://bootstrap.pypa.io/get-pip.py | python
# pip install requests requests_oauthlib


2. コードを書く

# mkdir twitter
# cd twitter

設定ファイルを作成。

# vim settings.py
 
CONSUMER_KEY = "***"
CONSUMER_SECRET = "***"
ACCESS_TOKEN = "***"
ACCESS_TOKEN_SECRET = "***"

★上記のトークンやキーの作成は、以下のサイトを参考にした。
[https://syncer.jp/twitter-api-matome:title]

Tweetデータを取得するコード。

# vim timeline.py

# -*- coding: utf-8 -*-
import tweepy
import settings

auth = tweepy.OAuthHandler(settings.CONSUMER_KEY, settings.CONSUMER_SECRET)
auth.set_access_token(settings.ACCESS_TOKEN, settings.ACCESS_TOKEN_SECRET)

api = tweepy.API(auth)

public_tweets = api.home_timeline()

for tweet in public_tweets:
    print tweet.text.encode('utf-8')

これで20件のデータを取得できる。

3.Streaming APIを試してみる。
以下のサンプルコードを作成した。

# -*- coding: utf-8 -*-
import tweepy

import time
import settings

class StreamListener(tweepy.StreamListener):
    def __init__(self):
        super(StreamListener,self).__init__()

    def on_status(self, status):
        print '----------'
        print status.created_at
        print status.text.encode('utf-8')
        return True

    def on_error(self, status_code):
        print str(status_code)
        return False

if __name__ == "__main__":
    auth = tweepy.OAuthHandler(settings.CONSUMER_KEY, settings.CONSUMER_SECRET)
    auth.set_access_token(settings.ACCESS_TOKEN, settings.ACCESS_TOKEN_SECRET)

    api = tweepy.API(auth)

    stream = tweepy.Stream(auth=api.auth, listener=StreamListener())

    while True:
      try:
        stream.filter(languages=['ja'], track=[u'tokyo'])
      except:
        time.sleep(60)
        stream = tweepy.Stream(auth=api.auth, listener=StreamListener())


これでコンソールにだらだらとTweetが表示される。面白い!