1

Python Jsonライブラリを使用して、このアドレスから情報を抽出できます

http://search.twitter.com/search.json?q=%23damn&result_type=recent&rpp=1&filter:retweets

そしてほとんどの場合

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']

結果からテキストとIDを抽出して印刷できます。Twitterの制限に邪魔されないように15秒ごとにJSONをリクエストしています。

時々私はこれに遭遇します。

   {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'}

結果フィールドには何も含まれていないようです。これにより、次のエラーが発生します。

  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

これにより、Pythonコマンドラインが閉じます。続行する前に結果フィールドがいっぱいであることを確認するために「while」ループを配置することを検討しましたが、これにより多くのリクエストが送信され、スクリプトがTwitterからロックアウトされる可能性があると思います。

この問題に遭遇しましたか?あなたはそれを克服する方法を知っていますか?

4

1 に答える 1

0

結果を呼び出す前にifステートメントをスローするか、試してみます。WebAPIを使用しているときに、結果が常に信頼できるとは限らないことに気づきました。

于 2013-03-17T16:13:26.230 に答える