Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import itertools
- from lxml import html
- import requests
- import sys, getopt
- include_levels = len(sys.argv) > 1
- def parse_user(node):
- return {
- "name": node.xpath('.//div[@class="avatarUserName"]/text()')[0],
- "level": node.xpath('.//div[@class="levelOverlay unselectable"]/text()')[0]
- }
- def user_active(user):
- return user["level"] != "No Active Streak"
- def print_user(user):
- if include_levels:
- print("{:s}: {:s}".format(user["name"], user["level"]))
- else:
- print(user["name"])
- def scrape_page(url):
- page = requests.get(url)
- tree = html.fromstring(page.content)
- user_nodes = tree.xpath('//div[@class="avatarWithName"]')
- users = list(filter(user_active, map(parse_user, user_nodes)))
- if not users:
- return False
- for user in users:
- print_user(user)
- return True
- def scrape_users():
- for page_number in itertools.count(1):
- url = "https://dad.gallery/users?page={:d}".format(page_number)
- if not scrape_page(url):
- break
- scrape_users()
Advertisement
Add Comment
Please, Sign In to add comment