मैं उनके एपीआई और पायथन के urllib2 का उपयोग कर रेडिट से नई कहानियों को स्क्रैप की कोशिश कर रहा हूँ, लेकिन मैं इस तरह JSON दस्तावेज़ प्राप्त करते रहने के:रेडिट एपीआई लौटने बेकार 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)
जो मैंने लिखा है वह काफी छोटा और सीधा-आगे है, लेकिन मैं स्पष्ट रूप से कुछ देख रहा हूं या मुझे एपीआई की पूरी समझ नहीं है या urllib2 कैसे काम करता है।
एपीआई से example page यहां है।
क्या सौदा है?
संपादित करें किसी अन्य ब्राउज़र में उदाहरण पृष्ठ लोड करने का प्रयास करने के बाद, मैं पेज के शीर्ष पर जेएसओएन पोस्ट भी देख रहा हूं। ऐसा लगता है कि यह केवल //new.json के लिए है। अगर मैं //hot.json या बस/json कोशिश करता हूं, तो मुझे वह चाहिए जो मैं चाहता हूं।
[एपीआई लिंक] (http://www.reddit.com/r/all/new.json?limit=100) प्रदान किया गया मुझे एक ही डेटा देता है, '{" दयालु ":" लिस्टिंग "," डेटा ": {" मोडशैश ":" "," बच्चे ": []," बाद ": शून्य," पहले ": शून्य}}'। क्या आप वाकई एपीआई का सही इस्तेमाल कर रहे हैं? – Tim
क्या आप वाकई अपने पार्स किए गए JSON डेटा को प्रिंट नहीं कर रहे हैं? – icktoofay
@ टिम - यह अजीब बात है, क्योंकि मुझे [यह] मिलता है (http://pastie.org/5359171)। मुझे सीमा को 10 तक बदलना पड़ा क्योंकि पेस्टी के लिए 100 अपशिष्ट बहुत बड़ा था। –