Skip to content

Instantly share code, notes, and snippets.

@crock
Last active September 3, 2018 16:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crock/b6e9deee0732f67f818f5a7981b5e3af to your computer and use it in GitHub Desktop.
Save crock/b6e9deee0732f67f818f5a7981b5e3af to your computer and use it in GitHub Desktop.
import requests # http://docs.python-requests.org/en/master/
from bs4 import BeautifulSoup # https://www.crummy.com/software/BeautifulSoup/
def check(name):
"""
Function to check the availability of a specific Steam ID.
"""
session = requests.Session() # Initilzes a new session object from the requests module
matches = [] # Creates an empty list to hold our match objects
requestUrl = "https://steamcommunity.com/id/%s" % name # Creates a variable to hold our request url which should be the url to the Steam profile page
response = session.request("GET", requestUrl) # Makes an HTTP request to the profile page using the session we initialized above
if response.status_code is 200: # Checks if the request was successful before trying to parse the response on the next line
soup = BeautifulSoup(response.content, "html.parser") # Initializes our HTML parser module of choice, BeautifulSoup4, with the passed in response content
# Available
match1 = soup.body.findAll(text='The specified profile could not be found.') # Searches the page for the specified text and adds it to a variable
# Taken
match2 = soup.body.findAll(text='This profile is private.') # Searches the page for the specified text and adds it to a variable
match3 = soup.find('div', attrs={'class': 'profile_header'}) # Searches the page for an element with the specified class name and adds it to a variable
matches = [match1, match2, match3] # Adds all 3 of the above match variables to the list we created earlier
if matches is not []: # Checks if that list is empty and if it is not empty, it executes the code indented below
if matches[0]:
print(name + " - AVAILABLE")
return True
elif matches[1] or matches[2]:
print(name + " - IN USE")
return False
else: # Fallback in case our list is empty, just say the name is not available.
print(name + " - NOT AVAILABLE")
return False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment