import praw import csv #Configuration ApplicationName = 'This is the application name, please change it' SubredditName = 'RedditDayOf' OutputFile = 'posts.csv' def handle_submission(submission): if (str(submission.subreddit)==SubredditName): if (submission.link_flair_text is None): submission.link_flair_text = '' if(submission.url is None): submission.url = '' f = csv.writer(open(OutputFile, 'ab+')) f.writerow([submission.link_flair_text.encode('utf-8','ignore'),submission.thumbnail,submission.title.encode('utf-8','ignore'), submission.fullname, submission.author, submission.score, submission.created_utc,submission.permalink.encode('utf-8','ignore'),submission.num_comments,submission.url.encode('utf-8','ignore')]) print (submission.fullname + ' ' + str(submission.subreddit)) def handle_submissions(submissions): count = 0 for submission in submissions: handle_submission(submission) last_fullname=submission.fullname count += 1 return last_fullname, count def save_last_id(fullname): text_file = open('last_id_checked.txt', 'w') text_file.write(fullname) text_file.close() def get_last_id(): try: text_file = open('last_id_checked.txt','r') result = text_file.read() text_file.close() return result except: return None r = praw.Reddit(user_agent=ApplicationName) last_fullname = get_last_id() if last_fullname is None: submissions = r.get_subreddit(SubredditName).get_new(limit=1000) last_fullname = handle_submissions(submissions) save_last_id(last_fullname) else: print 'Starting again at ' + last_fullname count = 1 while count> 0: try: submissions = r.get_subreddit('all').get_new(params={'limit':'1000','after':last_fullname}) last_fullname, count = handle_submissions(submissions) save_last_id(last_fullname) except Exception as detail: print 'Error: ' , detail count = 1 save_last_id(last_fullname) print 'You have reached the beginning of time. Chilly, isn\'t it?'