Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import urllib.request
- import re
- class Game:
- def __init__(self):
- self.price = None
- self.name = None
- self.rating = None
- self.yearRelease = None
- self.genre = None
- def readNames(file):
- names = []
- game_names = re.findall(
- "<h2 class=\"search-results-row-game-title\">+[a-zA-Z0-9 ]+</h2>", file)
- try:
- for game_name in game_names:
- names.append(re.findall("(?<=\>)(.*?)(?=\<)", game_name))
- except:
- print('Error during reading the HTML file.')
- return names
- def readRatings(file):
- ratings = []
- game_ratings = re.findall(
- " .* <div class=\"metacritic-spinner-wrapper\">", file)
- try:
- for game in game_ratings:
- ratings.append(re.findall("[+-]?[0-9]+\.?[0-9]*", game))
- except:
- print('Error during reading the HTML file (Ratings).')
- return ratings
- def readYearReleasedAndGenre(file):
- year = []
- genre = []
- games_info = re.findall(
- "<div class=\"search-results-row-game-infos\">(.*)</div>", file)
- try:
- for game in games_info:
- year.append(re.findall("(.*?)\ -", game))
- genre.append(re.findall("\- (.*?)$", game))
- except:
- print('Error during reading the HTML file (Years and genre).')
- return year, genre
- def readPrice(file):
- prices = []
- games_info = re.findall(
- "([0-9]+\.?[0-9]*€)", file)
- try:
- for game in games_info:
- prices.append(re.findall("[+-]?[0-9]+\.?[0-9]*", game))
- except:
- print('Error during reading the HTML file (Prices).')
- return prices
- website = urllib.request.urlopen(
- 'https://www.allkeyshop.com/blog/catalogue/genre-pc-games-all/')
- html_file = website.read()
- text_file = html_file.decode()
- names = readNames(text_file)
- [years, genre] = readYearReleasedAndGenre(text_file)
- ratings = readRatings(text_file)
- prices = readPrice(text_file)
- games = []
- for index in range(len(names)):
- games.append(Game())
- games[index].name = names[index]
- games[index].years = years[index]
- games[index].genre = genre[index]
- games[index].rating = ratings[index]
- games[index].price = prices[index]
- print("Game name:\tPrice:\tYear released:\tGenre:\tRating:\t")
- for game in games:
- print("{}\t{}\t{}\t{}\t{}".format(
- game.name, game.price, game.years, game.genre, game.rating))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement