Bonjour à tous,
je suis actuellement en stage au sein d'une entreprise qui travail sur les zone d'aléa pour les inondations.
je voudrais pouvoir effectuer une recherche de tweet géolocalisé avec un certain mot clé, ce que j'arrive à faire avec mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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])
je voudrais à partir de ce moment pouvoir streamer twitter avec comme mot clé de recherche une liste de commune présente dans un fichier .csv Bd_Commune
j'arrive à récupérer l'information qui m’intéresse comme mot clé avec le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
r = csv.reader(open("D:/VIGNERON/BD_Commune.csv", "r"),delimiter = ';')
for row in r:
   commune = row[0]
   insee = row[1]
   print commune , insee

Mon problème est que je ne sais pas où placer cette lecture de fichier comme mot clé pour ma recherche.


J'aurais aussi voulu pouvoir récupérer les tweets non plus en live mais sur la journée précédente, quelqu'un aurait-il une idée pour réaliser tout ceci