iama_alpaca

TextPostScraper.py

Jun 3rd, 2017
748
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.88 KB | None | 0 0
  1. #! /usr/bin/python3
  2. # Usage: ./TextPostScraper.py <subreddit>
  3. import praw, os, sys, datetime
  4. client_id = ""
  5. client_secret = ""
  6. username = ""
  7. password = ""
  8. subname = sys.argv[1]
  9. os.makedirs(subname, exist_ok=True)
  10. reddit = praw.Reddit(client_id=client_id, client_secret=client_secret, password=password, user_agent='Text Post Archiver', username=username)
  11. sub = reddit.subreddit(subname)
  12. posts = sub.submissions()
  13. postnumber = 0
  14. def getdate(submission):
  15.     time = submission.created
  16.     return datetime.datetime.fromtimestamp(time)
  17. postslist = open(subname+' Post Archive.html', "a")
  18. archive = """<html>
  19. <center><head>Posts from /r/"""+subname+"""</head></center>
  20. <body>"""
  21. postslist.write(archive)
  22. for submission in posts:
  23.     try:
  24.         savepost = open(os.path.join(subname, submission.id+'.html'), "a")
  25.         savepost_comments = submission.comments.list()
  26.         postnumber+=1
  27.         print('Saving Post #'+str(postnumber)+': '+submission.title.replace("/","."))
  28.         post = """<html>
  29.         <head></head>
  30.         <body> <p>"""+submission.title+"""</p> <p>"""+submission.selftext.replace("’","'").replace('”','"').replace("—","--").replace('“','"').replace("‘","'").replace("…","...").replace("–","-")+"""</p>"""
  31.         savepost.write(post)
  32.         for comment in savepost_comments:
  33.             comment = """<p>"""+'['+str(comment.score)+' Points] '+str(comment.author)+': '+comment.body+"""</p>"""
  34.             savepost.write(comment)
  35.         finish = """ </body> </html>"""
  36.         savepost.write(finish)
  37.         savepost.close()
  38.         cwd = os.getcwd()
  39.         currentpost = """ """+str(submission.author)+' ['+str(submission.score)+' points] '+'['+str(submission.num_comments)+' comments] '+str(getdate(submission))+' '+"""<a href=\""""+cwd+'/'+subname+'/'+submission.id+'.html'+'">'+submission.title+'</a> <br>'""""""
  40.         postslist.write(currentpost)
  41.     except AttributeError:
  42.         pass
  43. finished = """</body> </html>"""
  44. postslist.write(finished)
  45. postslist.close()
Advertisement
Add Comment
Please, Sign In to add comment