in my 雑記

プログラミング bump 日々のことなど

python3でtwitterを検索する

f:id:inmyzakki:20170902164248p:plain

はじめに

pythonでツイッターを検索し結果を取得する方法を紹介します。
apiなので使用制限がありますが、それほど厳しくはないので、個人利用ならこれで事足りると思います。

twitter Api キー取得

twitterApiを使用するために、アプリケーション登録をします。
※twitterのアカウントを持っていない方は適当に取得してください。

f:id:inmyzakki:20170513151026p:plain

各キーは以下の画面から確認できます。

f:id:inmyzakki:20170513152534p:plain 以下のキー情報が必要です。

・Consumer Key
・Consumer Secret
・Access Token
・Access Token Secret

検索プログラム

OAuth認証が必要なので以下のライブラリを入れます。

pip install requests requests_oauthlib

あとは、下のソースを実行すると指定したワードで100件検索結果を表示します。

# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session, OAuth1
import json
import requests
import urllib
import sys
import io

#検索文字列設定
word = urllib.parse.quote_plus("検索文字列")

# デフォルト文字コードをutf8に変更
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

#apiキー情報設定
consumer_key = "apiキーを設定"
consumer_key_secret = "apiキーを設定"
access_token = "apiキーを設定"
access_token_secret = "apiキーを設定"

#twitterAPIアクセス
url = "https://api.twitter.com/1.1/search/tweets.json?count=100&lang=ja&q=" + word
auth = OAuth1(consumer_key, consumer_key_secret, access_token, access_token_secret)
response = requests.get(url, auth = auth)
data = response.json()['statuses']

#データ表示
for tweet in data:
    print(tweet["text"])
    print(tweet["created_at"])