Reddit の API と Python の urllib2 を使用して新しい記事を収集しようとしていますが、次のような JSON ドキュメントを取得し続けています。
{ u'kind': u'Listing', u'data': { u'modhash': u'', u'children': [], u'after': None, u'before': None }}
これが私のコードです:
import json
import time
import urllib2
def get_submissions(after=None):
url = 'http://reddit.com/r/all/new.json?limit=100'
if after:
url += '&after=%s' % after
_user_agent = 'Reddit Link Analysis Bot by PirateLogic @ github.com/jamesbrewer'
_request = urllib2.Request(url, headers={'User-agent': _user_agent})
_json = json.loads(urllib2.urlopen(_request).read())
return [story for story in _json['data']['children']], _json['data']['after']
if __name__ == '__main__':
after = None
stories = []
limit = 1
while len(stories) < limit:
new_stories, after = get_submissions(after)
stories.extend(new_stories)
time.sleep(2) # The Reddit API allows one request every two seconds.
print '%d stories collected so far .. sleeping for two seconds.' % len(stories)
私が書いたものはかなり短くて簡単ですが、明らかに何かを見落としているか、API や urllib2 の仕組みを完全に理解していません。
API のページの例を次に示します。
どうしたんだ?
EDIT別のブラウザーでサンプル ページを読み込もうとした後、ページの上部に投稿した JSON も表示されます。ただし、 //new.json のみのようです。//hot.json または /.json だけを試すと、必要なものが得られます。