Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import praw
- import csv
- import datetime
- username = ""
- password = ""
- clientid = ""
- clientsecret = ""
- reddit = praw.Reddit(client_id=clientid,
- client_secret=clientsecret,
- password=password,
- user_agent='Reddit search data extractor by /u/' + username + '',
- username=username)
- print("Authentication for " + str(reddit.user.me()) + " is verified. Proceeding.\r\n")
- outfilename = input("Enter a CSV filename to output the data to (e.g., reddit-data.csv)\r\n")
- search = input("Enter a search (e.g., 'how do you') or multiple searches delimited with commas:\r\n")
- filtersub = input("Do you want to restrict to a certain subreddit? Enter 'Yes' or 'No'.\r\n")
- search_list = search.split(',')
- if(filtersub.lower()=="yes"):
- subreddit = input("Enter the subreddit names delimited with commas (i.e., BigSEO):\r\n")
- subreddit_list = subreddit.split(',')
- file = open(outfilename, "w+", newline="\n", encoding="utf-8")
- f = csv.writer(file)
- f.writerow(["Number","Keyword","Title","Text","Score","Comments","URL","Domain","Permalink","ID","Subreddit","CreatedDate"])
- for subs in subreddit_list:
- for search in search_list:
- startNum = 0
- for submission in reddit.subreddit(subs.strip()).search(search):
- startNum += 1
- posttime = submission.created
- f.writerow([startNum, search.strip(), submission.title, submission.selftext,
- submission.score, submission.num_comments,
- submission.url, submission.domain, submission.permalink, submission.id,
- submission.subreddit, datetime.datetime.utcfromtimestamp(posttime).strftime('%m-%d-%Y')])
- print("Writing out posts results for the search '" + search.strip() + "' in 'r/" + subs.strip() + "'\r\n")
- file.close
- else:
- file = open(outfilename, "w+", newline="\n", encoding="utf-8")
- f = csv.writer(file)
- f.writerow(["Number","Keyword","Title","Text","Score","Comments","URL","Domain","Permalink","ID","Subreddit","CreatedDate"])
- for search in search_list:
- startNum = 0
- for submission in reddit.subreddit('all').search(search.lower()):
- startNum += 1
- posttime = submission.created
- f.writerow([startNum, search.strip(), submission.title, submission.selftext,
- submission.score, submission.num_comments,
- submission.url, submission.domain, submission.permalink, submission.id,
- submission.subreddit, datetime.datetime.utcfromtimestamp(posttime).strftime('%m-%d-%Y')])
- print("Writing out posts results for the search '" + search.strip() + "' in 'r/all'\r\n")
- file.close
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement