Sur Twitter, si un tweet contient un mot-clé spécifique, Un script à enregistrer au format 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"tester")
Limit_Status()
Dans cet exemple, enregistrez la chaîne "test" si elle existe dans home_timeline. Comme d'habitude, s'il n'y a pas de fichier CSV, il sera créé, s'il y en a, il sera écrasé, donc Notez que l'en-tête CSV sera dupliqué s'il est acquis en continu.
J'ai l'impression de pouvoir jouer avec diverses modifications à partir d'ici.
Recommended Posts