2010-12-02 36 views
23

Comment puis-je utiliser Twitter Search API (ou autre) pour obtenir une liste des tweets ayant le paramètre "geo"?Twitter API: Comment rechercher uniquement les tweets géolocalisés

--EDIT--

Par exemple: je reçois l'habitude de la liste des tweets géolocalisés, par tag #apple. Sans filtre de localisation, dans le monde entier.

+0

Je veux exactement la même chose. Avez-vous réussi à le faire fonctionner? – Beterraba

+0

L'API de recherche Twitter et le géo-param ne fonctionnera pas comme prévu, il peut toujours renvoyer des résultats où aucun accord n'est fourni (pas de lat/lng). –

Répondre

5

De la documentation Twitter API, cela devrait être le format de votre requête de recherche:

http://search.twitter.com/search.json?geocode=37.781157,-122.398720,1mi 

37.781157 est la latitude, la longitude -122.398720 est la et 1mi est le rayon de recherche dans.

+0

Donc, en spécifiant 10000000miles couvrir toute la terre et répondre à la question du PO? Cela fonctionnerait-il? – cherouvim

+1

'# geocode Renvoie des tweets d'utilisateurs situés dans un rayon donné de la latitude/longitude donnée.L'emplacement provient préférentiellement de l'API Geotagging, mais retombera sur son profil Twitter. La valeur du paramètre est spécifiée par "latitude, longitude, rayon", où les unités de rayon doivent être spécifiées comme "mi" (miles) ou "km" (kilomètres). Notez que vous ne pouvez pas utiliser l'opérateur near via l'API pour géocoder des emplacements arbitraires; Cependant, vous pouvez utiliser ce paramètre de géocodage pour rechercher directement des géocodes. ' –

+0

cette requête renvoie tous les twitts avec" geo "ou sans. J'ai besoin de twitts seulement avec "geo" param dans JSON. – bnetangel

9

L'API de diffusion en continu vous permettait de filtrer par emplacement et l'API de recherche vous permettait de rechercher par géocodage. Vous pouvez trouver plus d'informations sur ces services sur notre site de ressources pour les développeurs.

API streaming: http://dev.twitter.com/pages/streaming_api

Exemple: Créez un fichier appelé 'emplacements' qui contient, à l'exclusion des guillemets , l'expression: « emplacements = -122.75,36.8, -121.75,37.8, -74,40, -73,41” execute alors:

papillotes @locations -d http://stream.twitter.com/1/statuses/filter.json de -uAnyTwitterUser: Mot de passe.

Vous recevrez tous les tweets avec la mention géographique de la zone de la ville de San Francisco et New York .

Search API: http://dev.twitter.com/doc/get/search

Exemple: http://search.twitter.com/search.json?geocode=37.781157,-122.398720,1mi

+5

Je lis ceci, le problème est que je ne veux pas restreindre l'emplacement, mais recevoir seulement des tweets géolocalisés. – bnetangel

+0

Il n'y a aucun moyen de le faire avec l'API Twitter actuelle. Ce que vous demandez, c'est que Twitter vous fournisse un flux filtré - pourquoi Twitter gaspillerait-il de la bande passante et du temps serveur pour le pré-filtrage des flux? Vous devrez soit télécharger tous les flux, les filtrer vous-même, rechercher des flux dans un rayon ou quelque chose de similaire - il s'agit de vous faire le filtrage. –

+5

"Ce que vous demandez est pour twitter de vous fournir un flux filtré de quelque sorte" ... Si je recherche avec le param 'geocode = 37.781157, -122.398720,1mi', comme montré dans votre exemple, c'est aussi un" flux filtré ", dans la mesure où ne demander que des tweets géomarqués est un" flux filtré ". C'est très bien qu'il n'y ait aucun moyen de le faire actuellement, et merci de le préciser, mais cette fonction ne gaspillerait pas plus de temps que les filtres de géotag existants et consommerait moins de bande passante car nous n'aurions pas à supprimer TOUS les tweets nous voulons seulement un sous-ensemble. – JMTyler

12

ressemble à la dernière API prend en charge que; il suffit d'utiliser une assez grande région géographique pour votre requête:

-180,-90,180,90 

Voir plus de lien API pour filter and location

-2

Utilisez -180,-90,180,90 pour obtenir tout Tweet géolocalisées.

+2

Cela n'ajoute rien à [cette réponse antérieure] (http://stackoverflow.com/a/17287405/3614835). –

0

Vous pouvez rechercher tous les tweets, mais n'enregistrer que ceux qui sont géotraités. Je sais que ça n'a pas beaucoup de sens, mais ça marche plutôt bien.

si vous appelez vous recherchez des résultats, vous pouvez indiquer

for result in results: 
    if result.geo != None: 
     print result.text.encode('utf-8', errors='ignore') # or do anything you want with the tweets