#!/usr/bin/env python # coding: utf-8 # In[1]: # Basics from part 1 import requests base_url = 'https://www.reddit.com/' import os reddit_username = 'alpscode' reddit_password = os.environ['reddit_pass'] app_id = 'QC-6FYIEH_kqUw' app_secret = os.environ['reddit_secret'] data = {'grant_type': 'password', 'username': reddit_username, 'password': reddit_password} client_auth = requests.auth.HTTPBasicAuth(app_id, app_secret) response = requests.post(base_url + 'api/v1/access_token', data=data, headers={'user-agent': 'puppy-parser by alpscode'}, auth=client_auth) values = response.json() api_url = 'https://oauth.reddit.com' token = 'bearer {}'.format(values['access_token']) headers = {'Authorization': token, 'User-Agent': 'puppy-parser by alpscode'} # In[2]: payload = {'q': 'puppies', 'limit': 10} response = requests.get(api_url + '/subreddits/search', headers=headers, params=payload) js = response.json() # In[3]: print(js.keys()) # In[4]: print(response.text) # In[5]: sr = [] for i in range(js['data']['dist']): sr.append(js['data']['children'][i]['data']['display_name']) print(sr) # In[6]: payload = {'t': 'all'} r = requests.get(api_url + '/r/puppies/top', headers=headers, params=payload) print(r.text) # In[7]: payload = {'t': 'all', 'limit': 5} imghtml = '' for s in sr: imghtml += '

{}

'.format(s) r = requests.get(api_url + '/r/{}/top'.format(s), headers=headers, params=payload) js = r.json() for i in range(js['data']['dist']): if js['data']['children'][i]['data']['thumbnail'] == '': continue imghtml += ''.format( js['data']['children'][i]['data']['url'], js['data']['children'][i]['data']['thumbnail'], js['data']['children'][i]['data']['title'], ) imghtml += '
' # In[8]: from IPython.core.display import display, HTML display(HTML(imghtml)) # In[ ]: with open("puppies.html", "w", encoding='utf-8') as html_page: html_page.write(imghtml)