Je peux utiliser la bibliothèque python JSON pour extraire des informations à partir de cette adresseTwitter API de recherche, Python et JSON problème d'analyse syntaxique
http://search.twitter.com/search.json?q=%23damn&result_type=recent&rpp=1&filter:retweets
et la plupart du temps à l'aide
j =json.loads(urllib.urlopen('http://search.twitter.com/search.json?q=%23damn&result_type=recent&rpp=1&filter:retweets').read())
text = j['results'][0]['text']
id = j['results'][0]['id']
Je peux extraire le texte et ID à partir des résultats et les pprint. Je demande JSON toutes les 15 secondes afin que je ne sois pas bloqué par la limite de twitter.
De temps en temps, je rencontre cela.
{u'completed_in': 0.021,
u'max_id': 313306991827238912L,
u'max_id_str': u'313306991827238912',
u'next_page': u'?page=2&max_id=313306991827238912&q=%23damn&rpp=1&result_type=recent',
u'page': 1,
u'query': u'%23damn',
u'refresh_url': u'?since_id=313306991827238912&q=%23damn&result_type=recent',
u'results': [],
u'results_per_page': 1,
u'since_id': 0,
u'since_id_str': u'0'}
Rien ne semble être contenu dans le champ des résultats. Cela provoque l'erreur suivante.
Traceback (most recent call last):
File "C:\Users\Home\Desktop\test.py", line 32, in <module>
text = j['results'][0]['text']
IndexError: list index out of range
Qui ferme à son tour la ligne de commande Python. J'ai envisagé de placer une boucle 'while' pour m'assurer que le champ de résultats est plein avant de continuer mais je pense que cela pourrait envoyer beaucoup de requêtes et faire sortir le script de twitter.
Avez-vous rencontré ce problème? Savez-vous comment le surmonter?
Pourquoi ne faites pas simplement 'si j ['résultats']:'? –
pourquoi ne pas attendre un peu, si le champ des résultats est vide? consultez http://stackoverflow.com/questions/4152969/genrate-timer-in-python –
Je vais essayer ça maintenant. Parfois, il faut une heure ou deux avant qu'un résultat douteux entre en jeu. – Hooperstu