Guest User

DAD Username Scraper May 2020

a guest
May 28th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. import itertools
  4. from lxml import html
  5. import requests
  6. import sys, getopt
  7.  
  8. include_levels = len(sys.argv) > 1
  9.  
  10. def parse_user(node):
  11.     return {
  12.         "name": node.xpath('.//div[@class="avatarUserName"]/text()')[0],
  13.         "level": node.xpath('.//div[@class="levelOverlay unselectable"]/text()')[0]
  14.     }
  15.  
  16. def user_active(user):
  17.     return user["level"] != "No Active Streak"
  18.  
  19. def print_user(user):
  20.     if include_levels:
  21.         print("{:s}: {:s}".format(user["name"], user["level"]))
  22.     else:
  23.         print(user["name"])
  24.  
  25. def scrape_page(url):
  26.     page = requests.get(url)
  27.     tree = html.fromstring(page.content)
  28.     user_nodes = tree.xpath('//div[@class="avatarWithName"]')
  29.     users = list(filter(user_active, map(parse_user, user_nodes)))
  30.     if not users:
  31.         return False
  32.  
  33.     for user in users:
  34.         print_user(user)
  35.    
  36.     return True
  37.  
  38. def scrape_users():
  39.     for page_number in itertools.count(1):
  40.         url = "https://dad.gallery/users?page={:d}".format(page_number)
  41.         if not scrape_page(url):
  42.             break
  43.  
  44. scrape_users()
Advertisement
Add Comment
Please, Sign In to add comment