5
7

More than 5 years have passed since last update.

Twitterで特定のキーワードが含まれるツイートをCSVで保存する

Last updated at Posted at 2015-05-08

Twitterで特定のキーワードがツイートに含まれるものを、
CSVに保存するスクリプト。

twitcsvfield.py

#!/user/bin/env python
# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session
import csv
import json
import sys, codecs

C_KEY = "*************************"
C_SECRET = "*************************"
A_KEY = "*************************"
A_SECRET = "*************************"


def Home_timeline(field):
    url = "https://api.twitter.com/1.1/statuses/home_timeline.json"
    params = {
                "lang": "ja",
                "count": "100"
                }
    tw = OAuth1Session(C_KEY,C_SECRET,A_KEY,A_SECRET)
    req = tw.get(url, params = params)
    tweets = json.loads(req.text)

    f = open("tweetsearch.csv" , "ab")
    writer = csv.writer(f)
    writer.writerow(["Datatime", "User", "Name", "Text", "Place"])

    for tweet in tweets:
        created_at = (tweet["created_at"])
        User = (tweet["user"]["screen_name"].encode("utf-8"))
        Name = (tweet["user"]["name"].encode("utf-8"))
        Text = (tweet["text"].encode("utf-8"))
        Place = (tweet["place"])

        if (tweet["text"]) == field:
            writer.writerow([created_at, User, Name, Text, Place])
            f.close()
        else:
            pass


    return Home_timeline



def Limit_Status():
    url = "https://api.twitter.com/1.1/application/rate_limit_status.json"
    params = {}
    tw = OAuth1Session(C_KEY,C_SECRET,A_KEY,A_SECRET)
    req = tw.get(url, params = params)
    if req.status_code == 200:
        limit = req.headers["x-rate-limit-remaining"]
        print ("API remain: " + limit)
    return Limit_Status



Home_timeline(u"テスト")
Limit_Status()

このサンプルでは「テスト」という文字列がhome_timelineに存在していれば保存。
例によってCSVファイルはなければ作る、あれば上書きになるので、
連続して取得するとCSVヘッダが重複するので注意。

ここから色々改変して遊べそうな気はしている。

5
7
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
5
7