1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
import arcpy
import json
import tweepy
import time
import csv
from tweepy.streaming import StreamListener
#Enter Twitter API Key information
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
# céation d'un fichier csv pour stocker les données colléctées
with open("D:/VIGNERON/Output.csv", "w") as csvfile:
file = csv.writer(csvfile, delimiter=';',quotechar='|', quoting=csv.QUOTE_MINIMAL)
file.writerow(['Nom_utilisateur'] + ['Date'] + ['Evenement'] + ['Source'] + ['Commune'] + ['Insee'] +['Localisation'] + ['Contenu'] + ['X'] + ['Y'])
data_list = []
count = 0
# entrez votre mot clé désiré
motcle = "Paris"
class StdOutListener(StreamListener):
def on_status(self, status):
json_data = status._json
global count
# compteur à modifier selon votre désire
if count <= 10 :
coord = json_data["coordinates"]
# affichage des tweets seulement si ils possèdent une localisation
if coord != None:
user = status.user.name.encode('ascii', 'ignore').decode('ascii')
print ("Nom d'utilisateur : " + user)
date = str(status.created_at)
print("Date de publication : " + str(status.created_at))
evenement = "Innondation"
print ("Evenement : " + evenement)
source = "twitter"
print ("source : " + source )
commune = "Null"
print ("Nom de la commune : " + commune)
insee = "Null"
print ("Code Insee commune : " + insee)
localisation = "Null"
print ("localisation : " + localisation)
contenu = status.text.encode('ascii', 'ignore').decode('ascii')
print("Tweet text: " + contenu)
lon = coord["coordinates"][0]
lat = coord["coordinates"][1]
print ("Longitude : " + str(lon))
print ("Latitude : " + str(lat))
#écriture des infos dans le fichier de sortie
file = csv.writer(open("D:/VIGNERON/Output.csv", "a"), csvfile, delimiter=';' , quotechar='|' , quoting=csv.QUOTE_MINIMAL )
file.writerow([user]+[date]+[evenement]+[source]+[commune]+[insee]+[localisation]+[contenu]+[lon]+[lat])
count += 1
print count
return True
else :
return False
file.close()
def on_error(self, status_code):
print('Got an error with status code: ' + str(status_code))
return True # To continue listening
def on_timeout(self):
print('Timeout...')
return True # To continue listening
#connexion au flux twitter
listener = StdOutListener()
stream = tweepy.Stream(auth, StdOutListener())
stream.filter(track=[motcle]) |
Partager